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 notModel
? 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
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, **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
) – ARegistry
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
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
, searcheskey
anddescription
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. IfNone
, is ignored.
- Return type:
Union
[DataFrame
,QuerySet
]- Returns:
A sorted
DataFrame
of search results with a score in column__ratio__
. Ifreturn_queryset
isTrue
, an orderedQuerySet
.
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)#