plinder.core.index.query#

Query published PLINDER tables, joining related tables when needed.

plinder.core.index.query.query_table(table_name: str = 'annotation', *, columns: list[str] | None = None, filters: list[tuple[str, str, Any] | list[tuple[str, str, Any]]] | None = None, joins: list[str] | None = None, release: PlinderRelease | None = None) → DataFrame[source]#

Query one release table and add related tables when columns require them.

Requested output and filter columns select registered related tables automatically. Their join columns are unique, so joining never creates extra base rows. If a related table repeats a non-key column from the base table, its non-null values take precedence and unmatched base values are retained.

Parameters:
table_namestr

Name in plinder.core.RELEASE_TABLES.

columnslist[str] | None

Output columns. None returns every available column.

filterslist | None

Conditions combined with AND. A nested list is an OR group.

joinslist[str] | None

Additional registered tables to left-join. Usually unnecessary; use it to choose a source when the same requested column exists in more than one related table.

releasePlinderRelease | None

Explicit local release, or the configured release when omitted.

Protein clusters are available as ``protein_sequence_clusters`` (MMseqs)
and ``protein_structure_clusters`` (Foldseek). Query either table with
``chain_sequence`` to include sequences automatically. When starting from
``entry_chains``, choose the cluster table with ``joins=[…]``; both
cluster tables use the same representative column names.