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 df()#
Convert to DataFrame.
Warning: This will run a long time on large registries.
- Return type:
DataFrame
- 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)#
Bulk create validated records by parsing values for an identifier (a name, an id, etc.).
- 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., organism=”human”.
- 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 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_field (
Optional
[TypeVar
(StrField
,str
,DeferredAttribute
)], 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 lnschema_bionty as lb >>> lb.settings.organism = "human" >>> lb.Gene.from_bionty(symbol="ADGB-DT").save() >>> lookup = lb.Gene.lookup() >>> lookup.adgb_dt >>> lookup_dict = lookup.dict() >>> lookup_dict['ADGB-DT'] >>> lookup_by_ensembl_id = lb.Gene.lookup(field="ensembl_gene_id") >>> genes.ensg00000002745 >>> lookup_return_symbols = lb.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
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 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