lamindb.core.Registry#
- class lamindb.core.Registry(*args, **kwargs)#
Bases:
Model
Registry base class.
Extends
django.db.models.Model
.Why does LaminDB call it
Registry
and notModel
? The term “Registry” can’t lead to confusion with statistical, machine learning or biological models.Fields
Methods
- classmethod df(include=None)#
Convert to
pd.DataFrame
.By default, shows all direct fields, except
created_at
.If you’d like to include related fields, use parameter
include
.- Parameters:
include (
Union
[str
,list
[str
],None
], default:None
) – Related fields to include as columns. Takes strings of form"labels__name"
,"cell_types__name"
, etc. or a list of such strings.- Return type:
DataFrame
Examples
>>> labels = [ln.ULabel(name="Label {i}") for i in range(3)] >>> ln.save(labels) >>> ln.ULabel.filter().df(include=["created_by__name"])
- classmethod filter(**expressions)#
Query records (see Query & search registries).
- Parameters:
expressions – Fields and values passed as Django query expressions.
- Return type:
- Returns:
A
QuerySet
.
See also
Guide: Query & search registries
Django documentation: Queries
Examples
>>> ln.ULabel(name="my ulabel").save() >>> ulabel = ln.ULabel.filter(name="my ulabel").one()
- classmethod from_values(values, field=None, organism=None, public_source=None, mute=False)#
Bulk create validated records by parsing values for an identifier (a name, an id, etc.).
- Parameters:
values (
Union
[List
[str
],Series
,array
]) – A list of values for an identifier, e.g. [“name1”, “name2”].field (
Union
[str
,DeferredAttribute
,None
], default:None
) – A Registry field to look up, e.g., bt.CellMarker.name.organism (
Union
[str
,Registry
,None
], default:None
) – An Organism name or record.public_source (
Optional
[Registry
], default:None
) – A PublicSource record.- Return type:
list
[Registry
]- Returns:
A list of validated records. For bionty registries, also returns knowledge-coupled records.
Notes
For more info, see tutorial: Manage biological registries.
Examples
Bulk create from non-validated values will log warnings & returns empty list:
>>> ulabels = ln.ULabel.from_values(["benchmark", "prediction", "test"], field="name") >>> assert len(ulabels) == 0
Bulk create records from validated values returns the corresponding existing records:
>>> ln.save([ln.ULabel(name=name) for name in ["benchmark", "prediction", "test"]]) >>> ulabels = ln.ULabel.from_values(["benchmark", "prediction", "test"], field="name") >>> assert len(ulabels) == 3
Bulk create records from public reference:
>>> import bionty as bt >>> records = bt.CellType.from_values(["T cell", "B cell"], field="name") >>> records
.
- classmethod get(idlike)#
Get a single record.
- Parameters:
idlike (
int
|str
) – Either a uid stub, a uid or an integer id.- Return type:
- Returns:
A record.
See also
Guide: Query & search registries
Django documentation: Queries
Examples
>>> ulabel = ln.ULabel.get("2riu039")
- classmethod lookup(field=None, return_field=None)#
Return an auto-complete object for a field.
- Parameters:
field (
Union
[str
,DeferredAttribute
,None
], default:None
) – The field to look up the values for. Defaults to first string field.return_field (
Union
[str
,DeferredAttribute
,None
], default:None
) – The field to return. If None, returns the whole record.- Return type:
NamedTuple
- Returns:
A NamedTuple of lookup information of the field values with a dictionary converter.
See also
Examples
>>> import bionty as bt
>>> bt.settings.organism = "human"
>>> bt.Gene.from_public(symbol="ADGB-DT").save()
>>> lookup = bt.Gene.lookup()
>>> lookup.adgb_dt
>>> lookup_dict = lookup.dict()
>>> lookup_dict['ADGB-DT']
>>> lookup_by_ensembl_id = bt.Gene.lookup(field="ensembl_gene_id")
>>> genes.ensg00000002745
>>> lookup_return_symbols = bt.Gene.lookup(field="ensembl_gene_id", return_field="symbol")
.
- save(*args, **kwargs)#
Save.
Always saves to the default database.
- Return type:
None
- classmethod search(string, *, field=None, limit=20, return_queryset=False, case_sensitive=False, synonyms_field='synonyms')#
Search.
Makes reasonable choices of which fields to search.
For instance, for
Artifact
, searches key and description fields.- Parameters:
string (
str
) – The input string to match against the field ontology values.field (
Union
[str
,DeferredAttribute
,None
], default:None
) – The field against which the input string is matching.limit (
Optional
[int
], default:20
) – Maximum amount of top results to return.return_queryset (
bool
, default:False
) – Return search result as a sorted QuerySet.case_sensitive (
bool
, default:False
) – Whether the match is case sensitive.synonyms_field (
Union
[str
,DeferredAttribute
,None
], default:'synonyms'
) – Search synonyms if column is available. If None, is ignored.- Return type:
DataFrame
|QuerySet
- Returns:
A sorted DataFrame of search results with a score in column score. If return_queryset is True, an ordered QuerySet.
Examples
>>> ln.save(ln.ULabel.from_values(["ULabel1", "ULabel2", "ULabel3"], field="name"))
>>> ln.ULabel.search("ULabel2")
uid score
name
ULabel2 o3FY3c5n 100.0
ULabel1 CcFPLmpq 75.0
ULabel3 Qi3c4utq 75.0
.
- classmethod using(instance)#
Use a non-default LaminDB instance.
- Parameters:
instance (
str
) – An instance identifier of form “account_handle/instance_name”.- Return type:
QuerySet
.