Changelog 2024ยถ

Note

๐Ÿ’ก LaminDB implements โ€œmigration-based versioningโ€. When upgrading your LaminDB installation to a new minor version in major.minor.patch, you also migrate your database via lamin migrate deploy.

Get notified by watching releases for git repositories: lamindb, laminhub, laminr, and bionty.

๐Ÿชœ For other years, see: 2025 ยท 2023 ยท 2022

2024-12-01 db 0.77.3ยถ

  • โœจ Add Curator.from_tiledbsoma() PR @Koncopd

  • โœจ Add an artifact loader for .yaml PR @Koncopd

  • ๐ŸŽจ Better names for sections in .describe() PR1 PR2 @sunnyosun

  • ๐Ÿšธ Improve feedback on not-up-to-date notebook content PR @falexwolf

  • ๐Ÿšธ Log tiledbsoma target path PR @Koncopd

  • ๐Ÿ› Fix curator.validate() from public PR @sunnyosun

  • ๐Ÿ› Fix very long runtimes for Artifact.describe PR @Koncopd

  • ๐Ÿ› Fix organism in curator.standardize PR @sunnyosun

  • ๐Ÿ› Better error behavior for repeated calls of standardize PR @Zethson

  • ๐Ÿ› Fix the error on special chars in search strings PR @Koncopd

  • ๐Ÿ› Fix display of (non-categorical) str features in .describe() PR @sunnyosun

  • ๐Ÿ› Fix IPython import error PR @Koncopd

  • ๐Ÿ› Fix the error on existing cache on copy to cache in Artifact.save() PR @Koncopd

  • โฌ†๏ธ Exclude s3fs==2024.10.0 PR @Koncopd

  • โฌ†๏ธ Unpin supabase PR @Koncopd

2024-12-02 R 0.3.0ยถ

  • โœจ Add Artifact$open() to stream array-like artifacts PR @lazappi

  • โœจ Track artifacts as inputs PR @lazappi

  • โœจ Allow connecting to private LaminDB instances PR @rcannood

  • ๐Ÿšธ Improve UX of db$track() and db$finish() PR @lazappi @falexwolf

2024-12-01 db 0.77.2ยถ

  • ๐Ÿšธ A more intuitive artifact.describe() PR @sunnyosun

  • โœจ Enable to easily join features onto artifacts via Artifact.df() PR @falexwolf

  • โœจ Support features with dtype = 'str' PR @falexwolf

  • โœจ Support features with dtype = 'datetime' and improve feature values handling PR @falexwolf

  • ๐ŸŽจ Let .from_values() return RecordList and better treat categorical PR @falexwolf

  • ๐ŸŽจ Add .standardize() to Curator PR @sunnyosun

  • ๐ŸŽจ Make search in bionty.base consistent with lamindb PR @Koncopd

2024-11-25 hub 0.31ยถ

๐Ÿšธ Improve speed and relevance search. Make search consistent with lamindb 0.77. PR @Koncopd @fredericenard

Details

Since lamindb 0.77 and laminhub 0.31 search isnโ€™t fuzzy anymore. This leads to much more predictable and relevant results similar to what users know from GitHub, Slack and similar tools.

image

Search results for lamindb and bionty are now exemplified here faq/search.

More changes.

  • โšก Faster loading speed on launch @awgaan

  • ๐Ÿ› Fixed incorrect sorting in the version selector @chaichontat

2024-11-21 R 0.2.0ยถ

โœจ Read and write data with LaminR, an R client for LaminDB. PR @rcannood @lazappi

install.packages("laminr", dependencies = TRUE)  # install the laminr package from CRAN
library(laminr)

db <- connect()  # connect to the instance you configured on the terminal
db$track(path = "./my-analysis.Rmd")  # track a run of your notebook or script
artifact <- db$Artifact$get("3TNCsZZcnIBv2WGb0001")  # get an artifact record by uid
df <- artifact$load() # load the artifact into memory, e.g., a DataFrame

# do your work

db$Artifact.from_path("./my_result_folder", description="My result").save()  # save a folder
db$finish()  # mark the run finished

2024-11-21 db 0.77.0 | bionty 0.53ยถ

โœจ Enable validation of Literal and other field types. PR @sunnyosun

  • A Literal-typed CharField is validated for any Record:

    from lnschema_core import Record, fields
    
    CRISPRType = Literal[
        "CRISPRi",
        "CRISPRa",
    ]
    
    class Treatment(Record):
        system: CRISPRType = fields.CharField()
    
    Treatment(system="crispr")
    #> FieldValidationError:
    #>   system: crispr is not a valid value
    #>     โ†’ valid values are: CRISPRa, CRISPRi
    
  • For custom field types, use Djangoโ€™s rich field validation and subclass ValidateFields:

    from lnschema_core import Record, ValidateFields
    from django.core.validators import RegexValidator
    
    class Reference(Record, ValidateFields):
        url: str = fields.URLField()
        doi: str = fields.CharField(
            validators=[
                RegexValidator(
                    regex=r"^(?:https?://(?:dx\.)?doi\.org/|doi:|DOI:)?10\.\d+/.*$",
                    message="Must be a DOI (10.1000/xyz123 or https://doi.org/10.1000/xyz123)",
                )
            ],
        )
    
    Reference(doi="abc.ef", url="myurl.com")
    #> FieldValidationError:
    #>   url: myurl.com is not valid
    #>     โ†’ Enter a valid URL.
    #>   doi: abc.ef is not valid
    #>     โ†’ Must be a DOI (10.1000/xyz123 or https://doi.org/10.1000/xyz123)
    
  • These possibilities are now leveraged in all schema modules.

๐Ÿฑ Overhauled Nextflow integration. PR @Zethson

  • The registration script now leverages standardized nf-core metadata paths

  • Example use case is now more comprehensive and based on nf-core/scrnaseq

Other enhancements.

  • ๐Ÿšธ Mark .qmd & .Rmd files as notebooks, not scripts PR @falexwolf

  • ๐Ÿšธ Suppress hf filesystem warning due to not being explicitly implemented in upath PR @Koncopd

2024-11-15 db 0.76.16ยถ

New features.

  • โœจ Support saving R code including .qmd and .Rmd PR @falexwolf

  • โœจ Support registering artifacts on Hugging Face PR @Koncopd

Other enhancements.

  • ๐Ÿ“ Add guide on gene symbol mapping Guide PR @Zethson

  • ๐Ÿšธ Improve speed and relevance search PR @Koncopd

  • ๐Ÿšธ Refactor ln.track() to improve logging and method signature PR @falexwolf

  • ๐Ÿšธ Enable to query with records from a different database instance PR @falexwolf

  • ๐Ÿšธ Enable autocompletion for inherited methods in Jupyter PR @Koncopd

  • ๐ŸŽจ Make EHRCurator immutable PR @Zethson

  • ๐Ÿšธ Warn if curating against gene symbols PR @Zethson

  • ๐Ÿšธ Better logging during curation PR PR @Zethson

  • ๐Ÿšธ Add pip install extras for all schema modules PR @Zethson

Fixes.

  • ๐Ÿ› Fix transfering artifacts from a source instance with fewer schema modules PR @sunnyosun

  • ๐Ÿ› Fix registering Gene columns in DataFrameCurator PR @sunnyosun

Deprecations.

  • ๐Ÿšš Deprecate import_from_source in favor of import_source PR @Zethson

2024-11-13 hub 0.30ยถ

โœจ A link that omits the last 4 version-coding characters now links to the latest version of a record, e.g., 13VINnFk89PE โ†’ 13VINnFk89PE0006. PR @chaichontat

image

๐Ÿšธ Filter selectors are more intuitive. PR @chaichontat

image

โœจ Plots can now visualize time series. PR @chaichontat @Golodhros

image

Further enhancements.

Fixes.

2024-10-29 db 0.76.15ยถ

โœจ Stream pyarrow.dataset via Artifact.open() PR @Koncopd

df = pd.DataFrame({"col1": [0, 0, 1, 1], "col2": [6, 7, 8, 9]})
df.to_parquet("df.parquet", engine="pyarrow", partition_cols=["feat1"])
artifact = ln.Artifact("df.parquet", description="A partitioned parquet").save()
with artifact.open() as dataset:    # get pyarrow.dataset.Dataset
    batches = dataset.to_batches()  # get a streaming iterator over batches
    dataset.to_table().to_pandas()  # read into memory and convert to pandas Dataframe

โœจ Add .query_parents() and .query_children() to hierachical registries PR @Koncopd

import lamindb as ln

label1 = ln.ULabel(name="label1").save()
label2 = ln.ULabel(name="label2").save()
label3 = ln.ULabel(name="label3").save()
label1.children.add(label2)
label2.children.add(label3)
label3.query_parents()  # returns a QuerySet with label1 and label2
label1.query_children() # returns a QuerySet with label2 and label3

More changes:

2024-10-18 db 0.76.14 | bionty 0.52ยถ

Features.

  • โœจ Safe handling of renaming internal features and labels PR @sunnyosun

  • โœจ Enable curating multiple categorical features per artifact against the same label registry PR @falexwolf

  • โœจ Add Collection.append() PR @Koncopd

User experience.

  • ๐Ÿšธ Document how to subclass Curator PR @Zethson

  • ๐Ÿšธ Automate Curator.add_validated_from and remove it from the API Breaking PR @sunnyosun

  • ๐Ÿšธ Remove unnecessary BioRecord.list_source() Breaking PR @sunnyosun

Bionty changes.

  • ๐ŸŽจ Add unique constraints and fix gene_ref_is_symbol to label_ref_is_name PR @falexwolf

  • ๐ŸŽจ Remove update in add_ontology_from_df() PR @sunnyosun

Fixes.

  • ๐Ÿ› Fix tracking of notebooks on PyCharm PR @Koncopd

  • ๐Ÿ› Fix loading artifact by key and give clear errors if no artifacts or transforms found PR @Koncopd

Deprecations.

  • ๐Ÿ”Š Deprecate login with --key PR @Koncopd

2024-10-14 hub 0.29ยถ

โœจ Advanced filters. @chaichontat @adamdev21

image

โœจ Filter on click. @chaichontat

image

โœจ Links to filtered artifacts in record tables. @chaichontat

image

โœจ Links to artifacts in Features dashboard. @chaichontat

๐Ÿ’„ Prettify plotting panels on Overview page PR @chaichontat

image

Enhancements.

Fixes.

  • ๐Ÿ’„ Do not display N/A fields in hover card

  • ๐Ÿ› Fix duplicated alias error with filters

  • ๐Ÿ› Fix collection copy button

  • ๐Ÿ› Deduplicate transform references in โ€œOutputsโ€ section

  • ๐Ÿ› Fix hang when loading transform

  • ๐Ÿ› Fix transform pane collapsing behavior

  • ๐Ÿ› Fix flicker

Deprecations.

  • ๐Ÿšธ Beta API key is now stable; deprecate legacy API key

2024-10-11 db 0.76.13ยถ

  • ๐Ÿšธ Do not error if a schema module of an instance isnโ€™t installed PR @falexwolf

  • ๐Ÿšธ More decent failing upon invalid lamin init calls PR @Koncopd

  • ๐Ÿšธ Clearer feedback when somebody tries to switch the default instance PR @falexwolf

  • ๐Ÿ› Fix .get() with .using() PR @sunnyosun

  • ๐Ÿ› For .view_lineage() for circular input/outputs PR @sunnyosun

  • ๐Ÿ› Fix transferring to target instances that have more schema modules than the source instance PR @sunnyosun

  • ๐Ÿ› Fix monkey-patching __getitem__ on QuerySet PR @sunnyosun

  • ๐Ÿ› Do not double track runs PR @falexwolf

2024-10-08 db 0.76.12 | bionty 0.51ยถ

  • โœจ Overhaul save_vitessce_config() to support multiple artifacts and non-.zarr PR @keller-mark

  • ๐Ÿšธ Query with typed labels through .features PR @falexwolf

  • ๐Ÿ“ Document how to query by dictionary-like run parameters PR @falexwolf

  • ๐Ÿฑ New ExperimentalFactor version: efo-3.70.0 PR @Zethson

  • ๐Ÿ› Fix lamin load ... --with-env across servers PR @Koncopd

2024-10-02 hub 0.28ยถ

Major improvements.

Minor changes.

  • ๐Ÿ› Fix ulabel filtering on Artifacts page @adamdev21

  • ๐Ÿ› Fix collection page @sunnyosun

  • ๐Ÿ› Do not re-encode vitessce url if itโ€™s non-lamin @sunnyosun

  • ๐Ÿšธ A friendly message when a user still drafts a transform and hasnโ€™t provided source code or run report @sunnyosun

  • ๐Ÿšธ Use key as a download name for a transform @sunnyosun

  • ๐Ÿšธ Only show linked labels in filters @adamdev21

  • ๐Ÿ’„ Order transforms & runs by created_at @sunnyosun

  • ๐Ÿ’„ On Overview page, show data formats, feature sets, and artifact size and counts @chaichontat

  • โœจ Support refSpecUrl in VitessceConfig @sunnyosun

2024-10-01 db 0.76.11ยถ

  • โœจ Add a reference manager schema module: findrefs PR @falexwolf

  • ๐Ÿ› Fix label name display in .describe() PR @falexwolf

  • ๐Ÿ› Fix permission error when saving a new artifact on python 3.12 PR @Koncopd

  • ๐Ÿ’„ Strip NotebookNotSaved error from report after ln.finish() PR @Koncopd

2024-09-30 db 0.76.10ยถ

  • ๐Ÿšธ Re-worked the CLI: lamin load โ†’ lamin connect & lamin get โ†’ lamin load PR @Koncopd @apโ€“

  • โšก Improve performance of ln.connect(), lamin connect, and lamin load for a notebook PR @falexwolf

  • โšก๏ธ Speed up curation workflows through from_values PR @sunnyosun

  • ๐Ÿšธ Improve lamin load UX for notebooks & scripts PR @falexwolf

  • ๐Ÿšธ Transfer: Warn about inconsistencies between source & target instances PR @falexwolf

  • ๐ŸŽจ Move .from_values() from Record to CanValidate PR @falexwolf

  • ๐Ÿ“ Document how to work with run parameters PR @falexwolf

  • โœจ Track transfers as transforms PR @falexwolf

  • โšก๏ธ Speed up describe PR @sunnyosun

  • ๐Ÿšธ Minimal ln.track() PR @falexwolf

  • โœจ Enable to lamin load from on-prem domains PR @falexwolf

2024-09-26 db 0.76.9ยถ

Curating perturbations

Genetic, compound, and environmental perturbations and their targets can be curated with the wetlab schema. This can be achieved at varying levels of detail. For example, with a high degree of detail:


import wetlab as wl

EGFR_kd = wl.GeneticTreatment(
    system="CRISPR Cas9",
    name="EGFR knockdown",
    sequence="AGCTGACCGTGA",
    on_target_score=85,
    off_target_score=15
).save()

EGFR_gene = bt.Gene.from_source(symbol="EGFR").save()
EGFR_kd_target = wl.TreatmentTarget(name="cell growth").save()
EGFR_kd_target.genes.add(EGFR_gene)

artifact.genetic_treatmends.add(EGFR_kd)

2024-09-23 db 0.76.8ยถ

  • ๐Ÿ› Ensure is_latest is set to False in previous version if matching on artifact.key PR @falexwolf

  • โœจ Store artifacts under their virtual keys in cache PR @Koncopd

2024-09-18 db 0.76.7 | bionty 0.50ยถ

  • โœจ Enable getting the latest run environment for a transform PR @falexwolf

  • โœจ Enable displaying images via artifact.load(), add documentation for artifact loaders PR @falexwolf

  • ๐Ÿšธ Do not throw an error but prompt upon ln.context.track() in a notebook PR @falexwolf

  • ๐Ÿšธ Allow to use Collection.mapped() without saving the collection PR @Koncopd

  • ๐Ÿšธ Simplify CLI commands PR @falexwolf

  • ๐Ÿšธ Add parameter validation in bionty PR @Zethson

Technical changes
  • ๐Ÿ”Š More logging for import_from_source PR @sunnyosun

  • ๐Ÿ”Š Warn instead of hint about missed input tracking PR @Koncopd

  • โœจ Add n_observations to tiledbsoma-like artifacts PR @Koncopd

  • ๐ŸŽจ Remove stream argument from artifact.load() PR @Koncopd

Ontology versions
  • ๐Ÿฑ New Tissue version: uberon-2024-03-22 PR @Zethson

  • ๐Ÿฑ New Disease version: mondo-2024-05-08 PR @Zethson

  • ๐Ÿฑ New ExperimentalFactor version: efo-3.65.0 PR @Zethson

  • ๐Ÿฑ New CellType version: cl-2024-04-05 PR @Zethson

Use case changes
  • โœจ Add support for cellxgene-schema 5.1.0 PR @Zethson

  • ๐Ÿ“ Integrate cellxgene guides and add data loader examples PR @Koncopd

  • ๐Ÿ“ Track all AnnData inputs in scrna-tiledbsoma PR @Koncopd

2024-09-09 db 0.76.6 | bionty 0.50ยถ

  • โœจ Enable negations in filter() PR @falexwolf

  • โœจ lamin get via key or uid PR @falexwolf

  • ๐ŸŽจ Replace direct relation of Collection to FeatureSet with indirect relation through Artifact PR @falexwolf

  • ๐ŸŽจ Remove backward relationships for Run, User & Source foreign keys PR PR @falexwolf @sunnyosun

  • ๐Ÿ› Reload in Transform() upon passing existing uid PR @falexwolf

2024-09-05 db 0.76.5ยถ

2024-09-04 db 0.76.4ยถ

2024-08-30 db 0.76.3 | bionty 0.49ยถ

โœจ tiledbsoma integration. Guide PR @Koncopd

Example

Create a tiledbsoma.Experiment array store or append AnnData objects to an existing store.

# create new versioned tiledbsoma.Experiment
artifact = ln.integrations.save_tiledbsoma_experiment(
    adatas,
    measurement_name="RNA"
)

# append to existing tiledbsoma.Experiment
revised_artifact = ln.integrations.save_tiledbsoma_experiment(
    adatas,
    measurement_name="RNA",
    revises=artifact
)

Bionty updates.

  • ๐Ÿฑ Add chebi & chembl PR @Zethson

  • ๐Ÿฑ Add additional relationship types & update DevelopmentalStage and Tissue PR @Zethson

  • ๐Ÿฑ New CellLine version: depmap-2024-Q2 PR @Zethson

More changes.

  • ๐Ÿšš Deprecate Curate in favor of Curator PR @sunnyosun

  • ๐Ÿ”ฅ Remove lamin register and password argument of lamin login PR PR @falexwolf

2024-08-26 hub 0.27ยถ

โœจ Instance overview page. @chaichontat

Screenshot
image

๐Ÿ’„ Show Vitessce button next to dataset instead of VitessceConfig file. @sunnyosun

๐Ÿ—๏ธ Much improved on-prem deployment. @fredericenard

2024-08-23 db 0.76.2ยถ

๐Ÿšธ Simplify versioning. PR @falexwolf

Semantic version strings in .version are now optional as in git.
image
For Artifact & Transform, you can now also create new versions by passing the key argument.
artifact_v1 = ln.Artifact.from_df(df, key="my_datasets/my_study1.parquet").save()
# below automatically creates a new version of artifact_v1 because the `key` matches
artifact_v2 = ln.Artifact.from_df(df_updated, key="my_datasets/my_study1.parquet").save()
  • ๐Ÿšš Deprecate is_new_version_of argument in favor of revises

  • ๐Ÿšš Deprecate passing version to constructors; rather set .version after creating records

More changes.

2024-08-16 db 0.76.1ยถ

๐Ÿšธ Overhauled context tracking experience with ln.context.track() Details & PR @falexwolf @chaichontat

ln.context.uid = "FPnfDtJz8qbE0000"  # <-- auto-generated by ln.context.track()

# track the execution of your notebook or script with inputs & outputs
ln.context.track()
What was the previous experience?

Now:

image

Previously:

image
How does it look on the hub?

If you donโ€™t label with a semantic version tag, youโ€™ll get an auto-generated revision id.

image

โš ๏ธ Breaking change: ln.track() now returns None instead of a Run. Access the run via ln.context.run instead.

More changes:

  • ๐Ÿšธ Update .get() to accept expressions so that it can replace .filter(...).one() PR @falexwolf

  • โœจ MappedCollection compatible with latest scdataloader PR @Koncopd PR @jkobject

2024-08-14 db 0.76ยถ

2024-08-10 hub 0.26ยถ

2024-08-08 db 0.75.1ยถ

๐Ÿšธ Improved the cellxgene_lamin curation guide.

2024-08-08 bionty 0.48ยถ

New ontology versions.

  • ๐Ÿฑ New Tissue version: uberon-2024-05-13 PR @Zethson

  • ๐Ÿฑ New Tissue version: uberon-2024-01-18 PR @Zethson

  • ๐Ÿฑ New Phenotype version: zp-2024-04-18 PR @Zethson

  • ๐Ÿฑ New Phenotype version: pato-2024-03-28 PR @Zethson

  • ๐Ÿฑ New Phenotype version: mp-2024-06-18 PR @Zethson

  • ๐Ÿฑ New Phenotype version: hp-2024-04-26 PR @Zethson

  • ๐Ÿฑ New Pathway version: pw-7.84 PR @Zethson

  • ๐Ÿฑ New Pathway version: go-2024-06-17 PR @Zethson

  • ๐Ÿฑ New Disease version: mondo-2024-06-04 PR @Zethson

  • ๐Ÿฑ New Disease version: doid-2024-05-29 PR @Zethson

  • ๐Ÿฑ New Disease version: mondo-2024-01-03 PR @Zethson

  • ๐Ÿฑ New ExperimentalFactor version: efo-3.66.0 PR @Zethson

  • ๐Ÿฑ New ExperimentalFactor version: efo-3.62.0 PR @Zethson

  • ๐Ÿฑ New Drug version: dron-2024-08-05 PR @Zethson

  • ๐Ÿฑ New CellType version: cl-2024-05-15 PR @Zethson

  • ๐Ÿฑ New CellType version: cl-2024-01-04 PR @Zethson

2024-08-03 db 0.75ยถ

โœจ Track mutations of array stores. Guide PR @Koncopd

  • Artifacts that store mutable arrays can lead to non-reproducible queries.

  • To monitor reproduciblity and data lineage, mutations are now tracked when a context manager and Artifact.open(mode="w") for tiledbsoma array stores is used:

    with artifact.open(mode="w") as array:
        # mutate `artifact`
    
    # `artifact` now points to a new version of the artifact with an updated hash
    

๐Ÿšธ A better structured API. PR @falexwolf

  • ๐Ÿšธ Easier typing & maintenance of categorical fields via typing.Literal instead of Djangoโ€™s migration-dependent CharField.choices

  • ๐Ÿšธ Less clutter in auto-complete

    • ๐Ÿšš All fields pointing to link records start with links_

    • ๐Ÿšš Several fields for Artifact are now private via _ prefix: accessor, key_is_virtual, feature_values, param_values, hash_type, previous_runs

  • ๐ŸŽจ More consistency

    • ๐Ÿšš Rename Transform.parents to Transform.predecessors to disambiguate procedural/temporal from ontological/conceptual hierachies

    • ๐ŸŽจ Feature names are now guaranteed to be unique in a lamindb instance Feature.name

    • ๐ŸŽจ Consistent length of hash fields: HASH_LENGTH=22

    • ๐Ÿšš Rename input_of to input_of_runs

    • ๐ŸŽจ Transform.latest_report is now a property point to Transform.latest_run.report to simplify the schema

    • ๐ŸŽจ Artifact.type now defaults to None when passing a path so that auxiliary files and folders arenโ€™t labeled as dataset

  • ๐Ÿšธ Better definition of Collection

    • ๐Ÿšš Rename fields .artifact to .meta_artifact and .unordered_artifacts to .artifacts

    • Iteration over an ordered QuerySet of artifacts is now possible via .ordered_artifacts

    • For collections that have a single data artifact, access it via .data_artifact

  • ๐Ÿ—๏ธ Towards searchable source code

    • ๐Ÿšš Rename Transform.source_code to Transform._source_code_artifact

    • Re-introduce Transform.source_code as a text field together with a field hash

Better storage management.

  • ๐Ÿšธ Enable deleting artifacts in all managed storage locations of the current instance PR @falexwolf

  • โ™ป๏ธ Do not write storage records to hub for local test instances PR @falexwolf

  • ๐Ÿ› Fix populating storage.instance_uid during init_instance PR @falexwolf

Various updates.

2024-08-03 bionty 0.47ยถ

๐Ÿ—๏ธ Bionty is now a single Python package. PR PR PR PR PR

โš ๏ธ Migration: Once you load an instance, youโ€™ll be asked to uninstall lnschema_bionty and lamin migrate deploy

  • On the SQL level, tables are now prefixed with bionty_ instead of lnschema_bionty_

  • On the Django level, you can mount the bionty instead of the lnschema_bionty apps

๐Ÿšธ You can now import from in-house ontology sources. PR @sunnyosun

  • ๐Ÿšš Rename PublicSource to Source & from_public to from_source

  • Import from any parquet file into your registry, akin to how Bionty imports public ontology sources

User experience.

  • โšก Performantly import bulk records via .import_from_source()

  • ๐Ÿšธ More reliable ontology_id field recognition

  • โœจ Better error message for synonym duplications PR @Zethson

  • ๐Ÿšš All link model fields start with links_ PR falexwolf

  • ๐ŸŽจ CellMarker.name is now unique together with organism PR sunnyosun

New ontologies.

  • โœจ Add ICD ontology for Disease PR PR Zethson

  • ๐Ÿฑ New Protein version: uniprot-2024-03 PR sunnyosun

  • ๐Ÿฑ New Gene version: ensembl-111/112 PR Zethson

  • ๐Ÿฑ New ExperimentalFactor version: efo-3.63 PR Zethson

  • ๐Ÿฑ New CellType version: cl-2024-02-13 PR Zethson

  • ๐Ÿฑ New Tissue version: uberon-2024-02-20 PR Zethson

  • ๐Ÿฑ New Organism version: ensembl-release-111 & ensembl-release-112 PR sunnyosun

  • ๐Ÿฑ New Disease version: mondo-2024-02-06 PR Zethson

  • ๐Ÿฑ New Disease version: DOID-2024-01-31 PR Zethson

  • ๐Ÿฑ New Phenotype version: hp-2024-03-06 PR Zethson

  • ๐Ÿฑ New Phenotype version: mp-2024-02-07 PR Zethson

  • ๐Ÿฑ New Phenotype version: zp-2024-01-22 PR Zethson

  • ๐Ÿฑ New Pathway version: pw-7.82 PR Zethson

  • ๐Ÿฑ New Drug version: DRON-2024-03-02 PR Zethson

2024-07-26 hub 0.25ยถ

Overhauled the REST API: better performance and architecture.

UI improvements.

2024-07-26 db 0.74.3ยถ

โšก Speed up populating parent records by an order of magnitude, remove the parents keyword (PR @sunnyosun).

Features.

  • โœจ Allow for multiple local storage locations with the same root path PR @falexwolf

  • โœจ Add add_from_df method to BioRecord PR @sunnyosun

Chores.

2024-07-22 db 0.74.2ยถ

The API is now cleaner and fields are typed.

Details

All users who donโ€™t use Django outside of lamindb can set Djangoโ€™s internal API that clutters the Record name spaces by running: lamin set private-django-api on the command line.

tiledbsoma is now better supported.

  • โœจ Artifact.open() for tiledbsoma stores PR @Koncopd

Better names.

  • ๐Ÿšš Deprecate Artifact.backed() in favor of Artifact.open() PR @Koncopd

  • ๐Ÿšš Deprecate Annotate in favor of Curate PR @falexwolf

  • ๐Ÿšš Deprecate Registry in favor of Record PR @falexwolf

Better documentation.

Security updates & bug fixes.

  • ๐Ÿ”’ Enable Ruff security rules (bandit) & CodeQL PR @Zethson

  • ๐Ÿ› Fix return values of .save() for a few classes PR @falexwolf

2024-07-01 hub 0.24ยถ

2024-06-26 db 0.74.1ยถ

โ™ป๏ธ Refactor ln.settings PR @falexwolf.

  • โœจ Pass custom names for scripts via ln.settings.transform.name = "My script"

  • โš ๏ธ ln.settings.storage returns a StorageSettings object (root via ln.settings.storage.root)

Features.

  • โœจ Support different join types in QuerySet.df() PR @insavchuk

Use cases.

Docs.

2024-06-20 db 0.74ยถ

โœจ You can now distinguish model-like and dataset-like artifacts via a type field in the Artifact registry.

  • ๐Ÿšธ Leverage artifact.params.add_values() to annotate model-like artifacts like you leverage artifact.features.add_values() to annotate dataset-like artifacts

  • ๐Ÿ—๏ธ Add type field to Artifact, allow linking model-like artifacts against params, validate params akin to validating features, enable features-based annotation with non-ulabels PR @falexwolf

  • ๐Ÿšธ Support dict in add_values PR @Zethson

โ™ป๏ธ Refactor after upath upgrade. PR PR @Koncopd

2024-06-13 db 0.73.2ยถ

  • ๐Ÿ› Fix clashing reverse accessors for .previous_runs and .run PR @falexwolf

  • ๐Ÿ› Import IPython inside view PR @Koncopd

2024-06-05 db 0.73.1ยถ

  • ๐Ÿ—๏ธ Instantly synchronize instance schema with the hub PR @fredericenard

  • โฌ†๏ธ Upgrade universal_pathlib to 0.2.2 PR @Koncopd

  • ๐Ÿ› Fix generation of uid for manual Transform constructor PR @falexwolf

  • ๐Ÿ”ฅ Deleting artifact.stage() in favor of artifact.cache() (was deprecated in 0.70.0)

2024-05-29 db 0.73.0ยถ

Annotating & querying by features improved:

  • โœจ Support non-categorical feature values PR @falexwolf

  • โœจ Annotate dict-style with features & values PR @falexwolf

  • โœจ Query by features via .features.filter(key=value) PR @falexwolf

  • ๐Ÿ—๏ธ Feature values decoupled from feature sets PR @falexwolf

Example:

# annotate dict-style (feature & category names get validated)
artifact.features.add_values({
    "species": "setosa",
    "scientist": ["Barbara McClintock", "Edgar Anderson"],
    "instrument": "Leica IIIc Camera",
    "temperature": 27.6,
    "study": "Study 0: initial plant gathering",
    "is_awesome": True
})

# get the dict back
artifact.features.get_values()

# query by feature
ln.Artifact.features.filter(is_awesome=True)

Various improvements:

  • ๐Ÿšš Additional non-breaking constraints in the core schema PR @falexwolf

  • ๐Ÿšธ Make .upload_from(), .download_to(), and .view_tree() more user friendly PR @falexwolf PR @Koncopd

  • ๐Ÿšธ More intuitive version updating dialogue PR @falexwolf

  • ๐Ÿ› Actually add tracking run for entities beyond Artifact & Collection PR @falexwolf

  • ๐Ÿšธ ln.track() returns run PR @falexwolf

  • ๐Ÿšธ Better duplicate detection and search PR @falexwolf

  • ๐Ÿšธ Prettier .describe() PR @falexwolf

  • ๐Ÿšธ More interactivity in lamin save PR @falexwolf

  • ๐Ÿšธ create flag in .from_values() PR @falexwolf

  • ๐Ÿšธ Better ordering of fields in dataframe & record representations PR @falexwolf

  • ๐Ÿ“ Improved API reference: docs now show relationship attributes PR @falexwolf

2024-05-19 db 0.72.1ยถ

  • โฌ†๏ธ Update bionty PR @sunnyosun

  • ๐Ÿ› Deal with migration errors when keep-artifacts-local is true PR @falexwolf

2024-05-19 db 0.72.0ยถ

  • โœจ Extend managed access for AWS S3 to arbitrary paths PR @Koncopd @fredericenard

  • โœจ Extended data lineage tracking PR @falexwolf

    • Now store all creating runs and all updating runs for any entity, not just for Artifact & Collection, e.g., runs can now have CellType record outputs

    • Code is simpler through inheritance from two new base classes: TracksRun and TracksUpdates

  • โ™ป๏ธ Briefer and richer syntax for denoting feature types, renamed Feature.type to Feature.dtype, e.g., for categorical features, a valid type can be: cat[ULabel|bionty.Drug] PR @falexwolf

  • โœจ Support non-categorical metadata PR @falexwolf

    • Track non-categorical features: int, float, bool, datetime, lists & dictionaries stored in a FeatureValue registry

    • Track arbitrary typed parameters for runs through a Param registry analogous to the Feature registry: this replaces the hard-to-validate, hard-to-migrate, and hard-to-query json field of Run

  • ๐Ÿ—๏ธ Refactor link models PR PR @falexwolf

    • All annotation-related links are now stratified by Feature: what held for ULabel now also holds CellType and all other Bionty registries

    • Indicate whether semantic keys were used during validation to enable warnings upon renames

    • Protect artifact annotations rather than cascade delete them

    • More consistent naming of link models, e.g., ulabels.artifact_links instead of ulabels.artifactulabel_set

    • Dropped linking Bionty entities directly against Collection

    • Pruned & squashed migrations for faster instance creation

2024-05-14 db 0.71.3ยถ

2024-05-07 db 0.71.2ยถ

  • โœจ Enable passing parameters to ln.track() PR @falexwolf

2024-05-07 db 0.71.1ยถ

  • ๐Ÿšธ Upload source code of scripts upon ln.finish() and no longer upon ln.track() PR @falexwolf

  • ๐ŸŽจ Make features.add_feature_set public PR @sunnyosun

  • ๐ŸŽจ Use the same uid for the same feature set in transfer PR @sunnyosun

  • ๐ŸŽจ Upon upload switch to virtual key PR @falexwolf

  • โšก๏ธ Zarr and cache improvements PR @Koncopd

  • โ™ป๏ธ Extend valid suffixes to composite suffixes PR @falexwolf

  • ๐Ÿ”ฅ Remove little-used artifact.view_tree() PR @falexwolf

2024-05-01 db 0.71.0ยถ

  • โœจ Manage multiple storage locations with integrity PR @falexwolf

  • ๐Ÿšš Add an instance_uid field to Storage | 374 falexwolf

  • ๐Ÿšธ Proper progress bars for upload and download PR @Koncopd

  • ๐Ÿšธ Make save return self PR @falexwolf

2024-04-24 db 0.70.4ยถ

  • โœจ Allow passing path to .from_anndata PR @sunnyosun

  • ๐Ÿšธ In .setup.delete(), check for data deletion & delete from hub PR @falexwolf

  • โšก๏ธ Speed up latest_version PR @falexwolf

  • ๐Ÿšธ Better user feedback on folder-like artifacts PR @falexwolf

2024-04-22 db 0.70.3ยถ

  • ๐Ÿšธ Update metadata like description upon re-running PR @falexwolf

  • ๐Ÿ› Fix detection of AnnData in zarr and h5ad, refactor directory upload PR @Koncopd

  • ๐Ÿšธ Raise error if transforms of type notebook or script are passed manually PR @falexwolf

2024-04-19 db 0.70.2ยถ

  • โ™ป๏ธ In Vitessce integration, separate VitessceConfig from its referenced artifacts PR @falexwolf

  • ๐Ÿšธ In ln.finish(), remove flag i_saved_the_notebook PR @falexwolf

2024-04-18 db 0.70.1ยถ

2024-04-17 db 0.70.0ยถ

  • ๐Ÿšธ Update data source in case transform is re-run PR @falexwolf

  • ๐Ÿšธ Enable to label transforms via transform.ulabels PR @falexwolf

  • ๐Ÿšš Deprecate stage() in favor of cache() PR @falexwolf

2024-04-12 db 0.69.10ยถ

  • โœจ Add .obsm and .layers to MappedCollection and rename label_keys to obs_keys PR @Koncopd

  • ๐Ÿšธ Eliminate kwargs PR @sunnyosun

  • โœจ Introduce Annotate.from_mudata PR @sunnyosun

2024-04-08 db 0.69.9ยถ

  • ๐Ÿ› Fix clashes for multiple processes PR @falexwolf

2024-04-04 db 0.69.8ยถ

  • โ™ป๏ธ Use future annotations PR @Zethson

2024-04-03 db 0.69.7ยถ

  • โœจ Add ability to upload arbitrary files or folders from CLI PR @falexwolf

  • ๐Ÿ› Fix anndata backed mode incompatibility with scipy 1.13.0 f

2024-04-02 db 0.69.6ยถ

  • ๐Ÿš‘๏ธ Temp fix region for non-hosted buckets PR @sunnyosun

2024-03-30 db 0.69.5ยถ

2024-03-30 db 0.69.4ยถ

2024-03-28 db 0.69.3ยถ

  • โœจ Introduce annotation flow via Annotate.from_df and Annotate.from_anndata PR 1 2 3 @sunnyosun

2024-03-26 db 0.69.2ยถ

2024-03-18 db 0.69.1ยถ

โœจ To try out, add lamindb.validation with the Validator class PR @sunnyosun

2024-03-17 db 0.69.0ยถ

Main new features:

  • โœจ Integrate lamindb with git PR PR @falexwolf

  • โœจ Introduce ln.finish(), track run finish times as run.finished_at, rename run.run_at to run.started_at, upload notebooks during ln.finish() PR @falexwolf

  • ๐Ÿšธ Upload script source code and environment during ln.track() PR @falexwolf

Other changes:

  • โœจ Allow including simple related fields in .df() PR @falexwolf

  • ๐Ÿšš Move transform settings into settings PR @falexwolf

  • โœจ Add latest_version filter for QuerySet PR @falexwolf

  • ๐Ÿšš Rename transform.short_name to transform.key PR @falexwolf

  • ๐Ÿšธ Return storage_idx in MappedCollection PR @Koncopd

  • โ™ป๏ธ Add a JSON field to Run PR @falexwolf

2024-03-11 db 0.68.2ยถ

  • ๐Ÿšธ Move transform & run artifacts into cache before uploading PR @falexwolf

  • ๐Ÿšธ More sensible transform types PR @falexwolf

  • ๐Ÿšš Rename lnschema_lamin1 to wetlab PR @falexwolf

2024-03-08 db 0.68.1ยถ

  • ๐Ÿšธ You can now use ln.connect() to connect to a LaminDB instance PR @falexwolf

  • ๐Ÿšธ You can no longer delete data from non-default storage locations, as these might be tracked in other instances PR @sunnyosun

  • ๐Ÿšธ Enable transferring data from local instances to remote instances PR @sunnyosun

2024-03-01 db 0.68.0ยถ

๐Ÿšธ Decouple features linking from Artifact construction PR 1 2 3 @sunnyosun.

# default constructor for PathLike
artifact = ln.Artifact("mysc.h5ad", description="raw data")
# from_ constructors for other types
artifact = ln.Artifact.from_anndata(mysc_adata, description="raw data")  # no longer links features
artifact = artifact.save()

# high-level feature linking
artifact.features.add_from_anndata(var_field=bt.Gene.ensembl_gene_id)
artifact.features.add_from_df()

# low-level feature linking
meta = ln.Feature.from_values(mysc_adata.obs.columns, field="name")
genes = bt.Gene.from_values(mysc_adata.var.ensembl_gene_id, field="ensembl_gene_id")
artifact.features.add(genes, slot="obs")
artifact.features.add(genes, slot="var")

# labels linking (no change)
labels = ln.ULabel.from_values(adata.obs.donor, field=...)
ln.save(labels)
artifact.labels.add(labels)

2024-02-02 db 0.67.3ยถ

2024-01-14 db 0.67.2ยถ

  • โœจ Enable staging notebooks & code using the CLI PR @falexwolf

2024-01-12 db 0.67.1ยถ

  • ๐Ÿ› Fix idempotency of collection.save() PR @falexwolf

  • ๐Ÿšธ Disallow bulk-delete for Artifact, Transform & Collection PR @falexwolf

  • ๐Ÿšธ Init transform versions at 1 PR @falexwolf

  • โœจ Load json and html files PR @falexwolf

2024-01-11 db 0.67.0ยถ

  • ๐Ÿšš Rename .bionty to .public, .from_bionty to .from_public PR @sunnyosun

2024-01-09 db 0.66.1ยถ

  • ๐Ÿ› Fix id matching in view_lineage PR @sunnyosun

  • โ™ป๏ธ Fix connection time outs PR @Koncopd

  • โ™ป๏ธ Incorporate edge cases in inner and outer join in Collection.mapped PR @Koncopd

  • ๐ŸŽจ Not create organism records when calling .bionty() PR @sunnyosun

2024-01-07 db 0.66.0ยถ

2024-01-05 db 0.65.1ยถ

2024-01-02 db 0.65.0ยถ

biontyยถ

Name

PR

Developer

Date

Version

๐Ÿšš Rename Bionty to PublicOntology class

536

sunnyosun

2024-01-12

0.36.0

๐Ÿšš Rename bionty to bionty-base

539

sunnyosun

๐Ÿšš Rename PublicSource to Source

263

sunnyosun

2024-07-26

0.44.0

๐ŸŽจ Do not add obsolete terms due to ontology_id duplication

261

sunnyosun

2024-07-25

โšก๏ธ Speed up parents

259

sunnyosun

2024-07-22

๐Ÿšš Rename registry to record

256

falexwolf

2024-07-17

โ™ป๏ธ Consciously use class method

255

falexwolf

2024-07-10

๐Ÿ› Fix clashing reverse accessors between .previous_runs and .run

249

falexwolf

2024-06-13

0.43.0

โ™ป๏ธ Reformulate data lineage, remove json field from run

247

falexwolf

2024-05-19

0.42.0

โ™ป๏ธ Protect gene, protein, cell_marker & pathway in their FeatureSet relationships

246

falexwolf

2024-05-18

๐Ÿ—๏ธ Naming conventions for link tables, protecting deletion in link tables, maintaining integrity upon label & feature renames

245

falexwolf

2024-05-18

โ™ป๏ธ Account for migrations in lnschema_core

244

falexwolf

2024-05-17

๐Ÿ”ฅ Prune migrations

243

falexwolf

2024-05-16

๐Ÿ—๏ธ Spell out link tables with Artifact and link features

239

falexwolf

2024-05-16

๐Ÿ”ฅ Remove linking Collection to all Bionty entities

238

falexwolf

2024-05-15

โœจ Add sources

237

sunnyosun

2024-05-14

๐ŸŽจ Fix passing arguments to from_public

236

sunnyosun

2024-05-13

๐Ÿ› Fix organism

235

sunnyosun

2024-05-08

๐Ÿš‘๏ธ Fix public_source in inspect

232

sunnyosun

2024-04-18

๐Ÿ› Fix syncing public sources

230

sunnyosun

2024-04-11

โœจ Add PublicSource.set_as_currently_used

223

sunnyosun

2024-03-14

0.41.4

โœ๏ธ Fix encoding

213

sunnyosun

2024-01-12

0.38.4

๐Ÿš‘๏ธ Re-encode PublicSource

212

sunnyosun

2024-01-10

0.38.3

๐Ÿšš Rename .bionty to .public

208

sunnyosun

2024-01-09

๐Ÿšธ Do not create organism when calling bionty

206

sunnyosun

2024-01-08

wetlabยถ

Name

PR

Developer

Date

Version

โ™ป๏ธ Model categoricals via simple Literal

60

falexwolf

2024-08-02

โœจ Improved support for perturbations

56

Zethson

2024-07-29

๐Ÿšš Rename lnschema-lamin1 to wetlab

47

sunnyosun

2024-03-08

0.27.0

nbprojectยถ

Name

PR

Developer

Date

Version

โฌ†๏ธ Upgrade to pydantic v2

284

falexwolf

2024-07-23

โšก๏ธ Warn instead of raising the exception when ipylab is not installed

283

Koncopd

2024-05-08

0.10.3

โ™ป๏ธ Make ipylab an optional dependency

282

falexwolf

2024-05-06

๐Ÿ”‡ Silence erroneous logging

279

falexwolf

2024-02-27

0.10.1

๐Ÿšธ Init version at 1

277

falexwolf

2024-01-11

0.10.0