lamindb.dev.Registry#

class lamindb.dev.Registry(*args, **kwargs)#

Bases: Model

Registry base class.

Extends django.db.models.Model.

Why does LaminDB call it Registry and not Model? The term “Registry” can’t lead to confusion with statistical, machine learning or biological models.

Fields

Methods

classmethod filter(**expressions)#

Query records (see Query & search registries).

Parameters:

expressions – Fields and values passed as Django query expressions.

Return type:

QuerySet

Returns:

A QuerySet.

See also

Examples

>>> ln.ULabel(name="my ulabel").save()
>>> ulabel = ln.ULabel.filter(name="my ulabel").one()
classmethod from_values(values, field=None, **kwargs)#

Parse values for an identifier (a name, an id, etc.) and load corresponding records.

Parameters:
  • values (TypeVar(ListLike, list, pd.Series, np.array)) – A list of values for an identifier, e.g. ["name1", "name2"].

  • field (Optional[TypeVar(StrField, str, DeferredAttribute)], default: None) – A Registry field to look up, e.g., lb.CellMarker.name.

  • **kwargs – Additional conditions for creation of records, e.g., species="human".

Return type:

List[Registry]

Returns:

A list of 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 with shared kwargs:

>>> pipelines = ln.Transform.from_values(["Pipeline 1", "Pipeline 2"], field="name",
...                                      type="pipeline", version="1")
>>> pipelines

Bulk create records from bionty:

>>> import lnschema_bionty as lb
>>> records = lb.CellType.from_values(["T cell", "B cell"], field="name")
>>> records
classmethod lookup(field=None, return_field=None)#

Return an auto-complete object for a field.

Parameters:

field (Optional[TypeVar(StrField, str, DeferredAttribute)], default: None) – The field to look up the values for. Defaults to first string field.

Return type:

NamedTuple

Returns:

A NamedTuple of lookup information of the field values with a dictionary converter.

See also

search()

Examples

>>> import lnschema_bionty as lb
>>> lb.settings.species = "human"
>>> lb.Gene.from_bionty(symbol="ADGB-DT").save()
>>> lookup = lb.Gene.lookup()
>>> lookup.adgb_dt
>>> lookup_dict = lookup.dict()
>>> lookup_dict['ADGB-DT']
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 File, searches key and description fields.

Parameters:
  • string (str) – The input string to match against the field ontology values.

  • field (Optional[TypeVar(StrField, str, DeferredAttribute)], 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 (Optional[TypeVar(StrField, str, DeferredAttribute)], default: 'synonyms') – Search synonyms if column is available. If None, is ignored.

Return type:

Union[DataFrame, QuerySet]

Returns:

A sorted DataFrame of search results with a score in column __ratio__. If return_queryset is True, an ordered QuerySet.

See also

filter() lookup()

Examples

>>> ln.save(ln.ULabel.from_values(["ULabel1", "ULabel2", "ULabel3"], field="name"))
>>> ln.ULabel.search("ULabel2")
            id   __ratio__
name
ULabel2  o3FY3c5n  100.000000
ULabel1  CcFPLmpq   75.000000
ULabel3  Qi3c4utq   75.000000
classmethod select(**expressions)#