lamindb.Run¶
- class lamindb.Run(transform: Transform, name: str | None = None, params: dict | None = None, reference: str | None = None, reference_type: str | None = None, initiated_by_run: Run | None = None)¶
Bases:
SQLRecordRuns of transforms such as the execution of a script.
A registry to store runs of transforms, such as an executation of a script.
- Parameters:
transform –
TransformATransformrecord.name –
str | None = NoneAn optional name.params –
dict | None = NoneA dictionary of parameters.reference –
str | None = NoneFor instance, an external ID or a download URL.reference_type –
str | None = NoneFor instance,redun_id,nextflow_idorurl.initiated_by_run –
Run | None = NoneThe run that triggers this run.
See also
Examples
Create a run record:
ln.Transform(key="Cell Ranger", version="7.2.0", type="pipeline").save() transform = ln.Transform.get(key="Cell Ranger", version="7.2.0") run = ln.Run(transform)
Create a global run context for a custom transform:
ln.track(transform=transform) ln.context.run # global run
Track a global run context for a notebook or script:
ln.track() ln.context.run # global run
You can pass parameters to
Run(transform, params=params)or add them later:run.params = { "learning_rate": 0.01, "input_dir": "s3://my-bucket/mydataset", "downsample": True, "preprocess_params": { "normalization_type": "cool", "subset_highlyvariable": True, }, } run.save()
In contrast to
.params, features are indexed in theFeatureregistry and can reference relational categorical values. If you want to link feature values, use:run.features.add_values({ "experiment": "My experiment 1", })
Guide: Track parameters & features
Attributes¶
- property features: FeatureManager¶
Manage annotations with features.
- property status: str¶
Get status of run.
Returns the status as a string, one of:
scheduled,re-started,started,completed,errored, oraborted.Examples
See the status of a run:
run.status #> 'completed'
Simple fields¶
- uid: str¶
Universal id, valid across DB instances.
- name: str | None¶
A name.
- started_at: datetime¶
Start time of run.
- finished_at: datetime | None¶
Finished time of run.
- params: dict¶
JSON-like parameters.
- reference: str | None¶
A reference like a URL or external ID (such as from a workflow manager).
- reference_type: str | None¶
Type of reference such as a workflow manager execution ID.
- created_at: datetime¶
Time of first creation. Mismatches
started_atif the run is re-run.
- is_locked: bool¶
Whether the record is locked for edits.
Relational fields¶
-
environment:
Artifact| None¶ Computational environment for the run.
For instance,
Dockerfile,docker image,requirements.txt,environment.yml, etc.
-
initiated_by_run:
Run| None¶ The run that triggered the current run.
This is not a preceding run. The preceding runs (“predecessors”) is the set of runs that produced the output artifacts that serve as the inputs for the present run.
-
input_artifacts:
Artifact¶ The artifacts serving as input for this run.
Related accessor:
input_of_runs.
-
output_collections:
Collection¶ The collections generated by this run.
-
input_collections:
Collection¶ The collections serving as input for this run.
- blocks: RunBlock¶
Blocks that annotate this run.
Class methods¶
- classmethod filter(*queries, **expressions)¶
Query a set of artifacts.
- Parameters:
*queries –
Qexpressions.**expressions – Params, fields, and values passed via the Django query syntax.
- Return type:
See also
Guide: Query & search registries
Examples
Query by fields:
ln.Run.filter(key="examples/my_file.parquet")
Query by params:
ln.Run.filter(hyperparam_x=100)
- classmethod get(idlike=None, **expressions)¶
Get a single record.
- Parameters:
idlike (
int|str|None, default:None) – Either a uid stub, uid or an integer id.expressions – Fields and values passed as Django query expressions.
- Raises:
lamindb.errors.DoesNotExist – In case no matching record is found.
- Return type:
See also
Guide: Query & search registries
Django documentation: Queries
Examples
record = ln.Record.get("FvtpPJLJ") record = ln.Record.get(name="my-label")
- classmethod to_dataframe(include=None, features=False, limit=100)¶
Evaluate and convert to
pd.DataFrame.By default, maps simple fields and foreign keys onto
DataFramecolumns.Guide: Query & search registries
- Parameters:
include (
str|list[str] |None, default:None) – Related data to include as columns. Takes strings of form"records__name","cell_types__name", etc. or a list of such strings. ForArtifact,Record, andRun, can also pass"features"to include features with data types pointing to entities in the core schema. If"privates", includes private fields (fields starting with_).features (
bool|list[str], default:False) – Configure the features to include. Can be a feature name or a list of such names. If"queryset", infers the features used within the current queryset. Only available forArtifact,Record, andRun.limit (
int, default:100) – Maximum number of rows to display. IfNone, includes all results.order_by – Field name to order the records by. Prefix with ‘-’ for descending order. Defaults to ‘-id’ to get the most recent records. This argument is ignored if the queryset is already ordered or if the specified field does not exist.
- Return type:
DataFrame
Examples
Include the name of the creator:
ln.Record.to_dataframe(include="created_by__name"])
Include features:
ln.Artifact.to_dataframe(include="features")
Include selected features:
ln.Artifact.to_dataframe(features=["cell_type_by_expert", "cell_type_by_model"])
- classmethod search(string, *, field=None, limit=20, case_sensitive=False)¶
Search.
- Parameters:
string (
str) – The input string to match against the field ontology values.field (
str|DeferredAttribute|None, default:None) – The field or fields to search. Search all string fields by default.limit (
int|None, default:20) – Maximum amount of top results to return.case_sensitive (
bool, default:False) – Whether the match is case sensitive.
- Return type:
- Returns:
A sorted
DataFrameof search results with a score in columnscore. Ifreturn_querysetisTrue.QuerySet.
Examples
records = ln.Record.from_values(["Label1", "Label2", "Label3"], field="name").save() ln.Record.search("Label2")
- classmethod lookup(field=None, return_field=None)¶
Return an auto-complete object for a field.
- Parameters:
field (
str|DeferredAttribute|None, default:None) – The field to look up the values for. Defaults to first string field.return_field (
str|DeferredAttribute|None, default:None) – The field to return. IfNone, returns the whole record.keep – When multiple records are found for a lookup, how to return the records. -
"first": return the first record. -"last": return the last record. -False: return all records.
- Return type:
NamedTuple- Returns:
A
NamedTupleof lookup information of the field values with a dictionary converter.
See also
Examples
Lookup via auto-complete on
.:import bionty as bt bt.Gene.from_source(symbol="ADGB-DT").save() lookup = bt.Gene.lookup() lookup.adgb_dt
Look up via auto-complete in dictionary:
lookup_dict = lookup.dict() lookup_dict['ADGB-DT']
Look up via a specific field:
lookup_by_ensembl_id = bt.Gene.lookup(field="ensembl_gene_id") genes.ensg00000002745
Return a specific field value instead of the full record:
lookup_return_symbols = bt.Gene.lookup(field="ensembl_gene_id", return_field="symbol")
Methods¶
- describe(return_str=False)¶
Describe record including relations.
- Parameters:
return_str (
bool, default:False) – Return a string instead of printing.- Return type:
None|str
- restore()¶
Restore from trash onto the main branch.
- Return type:
None
- delete(permanent=None, **kwargs)¶
Delete record.
- Parameters:
permanent (
bool|None, default:None) – Whether to permanently delete the record (skips trash). IfNone, performs soft delete if the record is not already in the trash.- Return type:
None
Examples
For any
SQLRecordobjectrecord, call:>>> record.delete()
- save(*args, **kwargs)¶
Save.
Always saves to the default database.
- Return type:
TypeVar(T, bound= SQLRecord)