lamindb.ULabel

class lamindb.ULabel(name: str, description: str | None = None, reference: str | None = None, reference_type: str | None = None)

Bases: Registry, HasParents, CanValidate, TracksRun, TracksUpdates

Universal labels (valid categories).

Parameters:
  • namestr A name.

  • descriptionstr A description.

  • referencestr | None = None For instance, an external ID or a URL.

  • reference_typestr | None = None For instance, "url".

A ULabel record provides the easiest way to annotate an artifact or collection with a label: "My project", "curated", or "Batch X":

>>> my_project = ULabel(name="My project")
>>> my_project.save()
>>> collection.ulabels.add(my_project)

In some cases, a label is measured within an artifact or collection a feature (a Feature record) denotes the column name in which the label is stored. For instance, the collection might contain measurements across 2 organism of the Iris flower: "setosa" & "versicolor".

See Tutorial: Features & labels to learn more.

Note

If you work with complex entities like cell lines, cell types, tissues, etc., consider using the pre-defined biological registries in bionty to label artifacts & collections.

If you work with biological samples, likely, the only sustainable way of tracking metadata, is to create a custom schema module.

See also

Feature()

Dimensions of measurement for artifacts & collections.

labels

Label manager of an artifact or collection.

Examples

Create a new label:

>>> my_project = ln.ULabel(name="My project")
>>> my_project.save()

Label a artifact without associating it to a feature:

>>> ulabel = ln.ULabel.filter(name="My project").one()
>>> artifact = ln.Artifact("./myfile.csv")
>>> artifact.save()
>>> artifact.ulabels.add(ulabel)
>>> artifact.ulabels.list("name")
['My project']

Organize labels in a hierarchy:

>>> ulabels = ln.ULabel.lookup()  # create a lookup
>>> is_project = ln.ULabel(name="is_project")  # create a super-category `is_project`
>>> is_project.save()
>>> ulabels.my_project.parents.add(is_project)

Query by ULabel:

>>> ln.Artifact.filter(ulabels=project).first()

Fields

created_at DateTimeField

Time of creation of record.

created_by ForeignKey

Creator of record, a User.

run ForeignKey

Last run that created or updated the record, a Run.

updated_at DateTimeField

Time of last update to record.

id AutoField

Internal id, valid only in one DB instance.

uid CharField

A universal random id, valid across DB instances.

name CharField

Name or title of ulabel (required).

description TextField

A description (optional).

reference CharField

A reference like URL or external ID.

reference_type CharField

Type of reference, e.g., donor_id from Vendor X.

previous_runs ManyToManyField

Sequence of runs that created or updated the record.

parents ManyToManyField

Parent labels, useful to hierarchically group labels (optional).

Methods