lamindb.Transform¶
- class lamindb.Transform(name: str, key: str | None = None, type: TransformType | None = None, revises: Transform | None = None)¶
- class lamindb.Transform(*db_args)
Bases:
Record
,IsVersioned
Data transformations such as scripts, notebooks, functions, or pipelines.
A “transform” can refer to a Python function, a script, a notebook, or a pipeline. If you execute a transform, you generate a run (
Run
). A run has inputs and outputs.A pipeline is typically created with a workflow tool (Nextflow, Snakemake, Prefect, Flyte, MetaFlow, redun, Airflow, …) and stored in a versioned repository.
Transforms are versioned so that a given transform version maps on a given source code version.
Can I sync transforms to git?
If you switch on
sync_git_repo
a script-like transform is synched to its hashed state in a git repository upon callingln.track()
.>>> ln.settings.sync_git_repo = "https://github.com/laminlabs/lamindb" >>> ln.track()
The definition of transforms and runs is consistent the OpenLineage specification where a
Transform
record would be called a “job” and aRun
record a “run”.- Parameters:
name –
str
A name or title.key –
str | None = None
A short name or path-like semantic key.type –
TransformType | None = "pipeline"
SeeTransformType
.revises –
Transform | None = None
An old version of the transform.
Notes
Examples
Create a transform for a pipeline:
>>> transform = ln.Transform(key="Cell Ranger", version="7.2.0", type="pipeline").save()
Create a transform from a notebook:
>>> ln.track()
View predecessors of a transform:
>>> transform.view_lineage()
Attributes¶
- DoesNotExist = <class 'lamindb.models.transform.Transform.DoesNotExist'>¶
- Meta = <class 'lamindb.models.record.Record.Meta'>¶
- created_by: User¶
Creator of record.
- created_by_id¶
- links_project¶
Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
- links_reference¶
Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
- links_ulabel¶
Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
- property name: str¶
Name of the transform.
Splits
key
on/
and returns the last element.
- objects = <lamindb.models.query_manager.QueryManager object>¶
- property pk¶
- predecessors: Transform¶
Preceding transforms.
These are auto-populated whenever an artifact or collection serves as a run input, e.g.,
artifact.run
andartifact.transform
get populated & saved.The table provides a more convenient method to query for the predecessors that bypasses querying the
Run
.It also allows to manually add predecessors whose outputs are not tracked in a run.
- projects: Project¶
Linked projects.
- references: Reference¶
Linked references.
- runs: Run¶
Runs of this transform.
- space: Space¶
The space in which the record lives.
- space_id¶
- property stem_uid: str¶
Universal id characterizing the version family.
The full uid of a record is obtained via concatenating the stem uid and version information:
stem_uid = random_base62(n_char) # a random base62 sequence of length 12 (transform) or 16 (artifact, collection) version_uid = "0000" # an auto-incrementing 4-digit base62 number uid = f"{stem_uid}{version_uid}" # concatenate the stem_uid & version_uid
- successors: Transform¶
Subsequent transforms.
See
predecessors
.
- ulabels: ULabel¶
ULabel annotations of this transform.
Methods¶
- delete()¶
Delete.
- Return type:
None
- view_lineage(with_successors=False, distance=5)¶
View lineage of transforms.