dae.query_variants package

Subpackages

Submodules

dae.query_variants.attributes_query module

class dae.query_variants.attributes_query.AndNode(children: Iterable[LeafNode | TreeNode])[source]

Bases: TreeNode

class dae.query_variants.attributes_query.BaseQueryTransformerMatcher(parser: ~lark.lark.Lark = Lark(open('<string>'), parser='earley', lexer='dynamic', ...), token_converter: ~collections.abc.Callable[[~typing.Any], ~typing.Any] | None = None)[source]

Bases: object

Base class for query transformer matchers.

transform_query_string_to_tree(expression: str) LeafNode | TreeNode[source]
class dae.query_variants.attributes_query.BaseTreeTransformer[source]

Bases: object

transform(node: LeafNode | TreeNode) Any[source]
class dae.query_variants.attributes_query.BitwiseTreeTransformer(token_converter: Callable[[Any], LeafNode | TreeNode])[source]

Bases: Interpreter

Transform bitwise expressions.

arg(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
logical_and(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
logical_or(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
negation(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
simple_arg(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
class dae.query_variants.attributes_query.ContainsNode(arg: LeafNode | TreeNode)[source]

Bases: LeafNode

class dae.query_variants.attributes_query.ElementOfNode(arg: LeafNode | TreeNode)[source]

Bases: LeafNode

class dae.query_variants.attributes_query.EqualsNode(arg: LeafNode | TreeNode)[source]

Bases: LeafNode

class dae.query_variants.attributes_query.GreaterThanEqNode(arg: LeafNode | TreeNode)[source]

Bases: LeafNode

class dae.query_variants.attributes_query.GreaterThanNode(arg: LeafNode | TreeNode)[source]

Bases: LeafNode

class dae.query_variants.attributes_query.LeafNode(arg: LeafNode | TreeNode)[source]

Bases: object

class dae.query_variants.attributes_query.LessThanEqNode(arg: LeafNode | TreeNode)[source]

Bases: LeafNode

class dae.query_variants.attributes_query.LessThanNode(arg: LeafNode | TreeNode)[source]

Bases: LeafNode

class dae.query_variants.attributes_query.Matcher(tree: LeafNode | TreeNode, parser: Lark, matcher: Callable[[Any], bool])[source]

Bases: object

No idea what this class is supposed to do. If you know please edit.

match(array: Iterable[Any]) bool[source]
query_str() None[source]
class dae.query_variants.attributes_query.NotNode(child: LeafNode | TreeNode)[source]

Bases: TreeNode

class dae.query_variants.attributes_query.OrNode(children: Iterable[LeafNode | TreeNode])[source]

Bases: TreeNode

class dae.query_variants.attributes_query.QueryTransformerMatcher(parser: ~lark.lark.Lark = Lark(open('<string>'), parser='earley', lexer='dynamic', ...), token_converter: ~collections.abc.Callable[[~typing.Any], ~typing.Any] | None = None, transformer2: ~dae.query_variants.attributes_query.BaseTreeTransformer | None = None)[source]

Bases: BaseQueryTransformerMatcher

No idea what this is supposed to do. Please edit.

transform_tree_to_matcher(tree: LeafNode | TreeNode) Matcher[source]
class dae.query_variants.attributes_query.QueryTreeToBitwiseLambdaTransformer[source]

Bases: BaseTreeTransformer

No idea what this is supposed to do. Please edit.

AndNode(children: list[Callable[[Any], bool]]) Callable[[Any], bool][source]
ContainsNode(arg: Any) Callable[[Any], bool][source]
OrNode(children: list[Callable[[Any], bool]]) Callable[[Any], bool][source]
class dae.query_variants.attributes_query.QueryTreeToLambdaTransformer[source]

Bases: BaseTreeTransformer

Transforma all nodes to python lambda functions.

AndNode(children: list[Callable[[Any], bool]]) Callable[[Any], bool][source]
ContainsNode(arg: Any) Callable[[Any], bool][source]
ElementOfNode(arg: Any) Callable[[Any], bool][source]
EqualsNode(arg: Any) Callable[[Any], bool][source]
NotNode(children: list[Callable[[Any], bool]]) Callable[[Any], bool][source]
OrNode(children: list[Callable[[Any], bool]]) Callable[[Any], bool][source]
class dae.query_variants.attributes_query.QueryTreeToSQLBitwiseTransformer(column_name: str, *, use_bit_and_function: bool = True)[source]

Bases: QueryTreeToSQLTransformer

I don’t know what this class does. Please edit if you do.

static AndNode(children: list[str]) str[source]
ContainsNode(arg: Any) str[source]
static NotNode(children: list[str]) str[source]
static OrNode(children: list[str]) str[source]
class dae.query_variants.attributes_query.QueryTreeToSQLTransformer(column_name: str)[source]

Bases: BaseTreeTransformer

I don’t know what this class does. Please edit if you do.

static token_converter(arg: Any) str[source]
class dae.query_variants.attributes_query.StringQueryToTreeTransformer(_parser: ~lark.lark.Lark = Lark(open('<string>'), parser='earley', lexer='dynamic', ...), token_converter: ~collections.abc.Callable[[~typing.Any], ~typing.Any] | None = None)[source]

Bases: InlineTransformer

Convert tokens using a token converter.

all(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
any(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
arg(*args: Any) LeafNode | TreeNode[source]
logical_and(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
logical_or(*args: LeafNode | TreeNode) LeafNode | TreeNode[source]
negation(*args: Any) LeafNode | TreeNode[source]
simple_arg(*args: Any) Any[source]
start(*args: Any) Any[source]
class dae.query_variants.attributes_query.TreeNode(children: Iterable[LeafNode | TreeNode])[source]

Bases: object

dae.query_variants.attributes_query.affected_status_converter(arg: str | Status) Status | None[source]
dae.query_variants.attributes_query.get_bit_and_str(arg1: Any, arg2: Any, *, use_bit_and_function: bool) str[source]
dae.query_variants.attributes_query.inheritance_converter(arg: str | Inheritance) Inheritance | None[source]
dae.query_variants.attributes_query.roles_converter(arg: str | Role) Role | None[source]
dae.query_variants.attributes_query.sex_converter(arg: str | Sex) Sex | None[source]
dae.query_variants.attributes_query.variant_type_converter(arg: str | Type) Type[source]

dae.query_variants.attributes_query_inheritance module

class dae.query_variants.attributes_query_inheritance.Expression(expression: str)[source]

Bases: object

class dae.query_variants.attributes_query_inheritance.InheritanceTransformer(attr_name: str, *args: Any, use_bit_and_function: bool = True, **kwargs: Any)[source]

Bases: Transformer

No idea what this class is supposed to do. If you know please edit.

all(items: list) Expression[source]

Construct an all expression from items.

any(items: list) Expression[source]

Construct an any expression from items.

atom(items: list) Primitive | NegPrimitive[source]
atomlist(items: list) Primitive[source]
denovo(_items: list) Primitive[source]
expression(items: list) Expression[source]

Construct an Expression from items.

logical_and(items: list) Expression[source]
logical_or(items: list) Expression[source]
mendelian(_items: list) Primitive[source]
missing(_items: list) Primitive[source]
negative_primitive(items: list) Primitive | NegPrimitive[source]
omission(_items: list) Primitive[source]
other(_items: list) Primitive[source]
possible_denovo(_items: list) Primitive[source]
possible_omission(_items: list) Primitive[source]
primitive(items: list) Primitive[source]
reference(_items: list) Primitive[source]
unknown(_items: list) Primitive[source]
class dae.query_variants.attributes_query_inheritance.NegPrimitive(value: Any)[source]

Bases: object

class dae.query_variants.attributes_query_inheritance.Primitive(value: Any)[source]

Bases: object

dae.query_variants.base_query_variants module

class dae.query_variants.base_query_variants.QueryVariants[source]

Bases: ABC

Abstract class for querying variants interface.

abstract build_family_variants_query_runner(*, regions: list[Region] | None = None, genes: list[str] | None = None, effect_types: list[str] | None = None, family_ids: list[str] | None = None, person_ids: list[str] | None = None, inheritance: list[str] | None = None, roles_in_parent: str | None = None, roles_in_child: str | None = None, sexes: str | None = None, affected_statuses: str | None = None, variant_type: str | None = None, real_attr_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, ultra_rare: bool | None = None, frequency_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, return_reference: bool | None = None, return_unknown: bool | None = None, limit: int | None = None, study_filters: list[str] | None = None, tags_query: TagsQuery | None = None, zygosity_query: ZygosityQuery | None = None, **kwargs: Any) QueryRunner | None[source]

Create a query runner for searching family variants.

abstract build_summary_variants_query_runner(*, regions: list[Region] | None = None, genes: list[str] | None = None, effect_types: list[str] | None = None, variant_type: str | None = None, real_attr_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, ultra_rare: bool | None = None, frequency_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, return_reference: bool | None = None, return_unknown: bool | None = None, limit: int | None = None, **kwargs: Any) QueryRunner | None[source]

Create query runner for searching summary variants.

abstract has_affected_status_queries() bool[source]

Return True if the storage supports affected status queries.

abstract query_summary_variants(*, regions: list[Region] | None = None, genes: list[str] | None = None, effect_types: list[str] | None = None, variant_type: str | None = None, real_attr_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, ultra_rare: bool | None = None, frequency_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, return_reference: bool | None = None, return_unknown: bool | None = None, limit: int | None = None, **kwargs: Any) Generator[SummaryVariant, None, None][source]

Execute the summary variants query and yields summary variants.

abstract query_variants(*, regions: list[Region] | None = None, genes: list[str] | None = None, effect_types: list[str] | None = None, family_ids: list[str] | None = None, person_ids: list[str] | None = None, inheritance: list[str] | None = None, roles_in_parent: str | None = None, roles_in_child: str | None = None, sexes: str | None = None, affected_statuses: str | None = None, variant_type: str | None = None, real_attr_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, ultra_rare: bool | None = None, frequency_filter: list[tuple[str, tuple[float | None, float | None]]] | None = None, return_reference: bool | None = None, return_unknown: bool | None = None, limit: int | None = None, tags_query: TagsQuery | None = None, zygosity_query: ZygosityQuery | None = None, **kwargs: Any) Generator[FamilyVariant, None, None][source]

Execute the family variants query and yields family variants.

class dae.query_variants.base_query_variants.QueryVariantsBase(families: FamiliesData)[source]

Bases: QueryVariants

Base class variants for Schema2 query interface.

RUNNER_CLASS: type[QueryRunner]
deserialize_family_variant(sv_data: bytes, fv_data: bytes) FamilyVariant[source]

Deserialize a family variant from a summary and family blobs.

deserialize_summary_variant(sv_data: bytes) SummaryVariant[source]

Deserialize a summary variant from a summary blob.

has_affected_status_queries() bool[source]

Schema2 do support affected status queries.

tags_to_family_ids(tags_query: TagsQuery | None = None) set[str] | None[source]

Transform a query for tags into a set of family IDs.

static transform_roles_to_single_role_string(roles_in_parent: str | None, roles_in_child: str | None) str | None[source]

Transform roles arguments into singular roles argument.

Helper method for supporting legacy backends.

dae.query_variants.query_runners module

class dae.query_variants.query_runners.QueryResult(runners: list[QueryRunner], limit: int | None = -1)[source]

Bases: object

Run a list of queries in the background.

The result of the queries is enqueued on result_queue

CHECK_VERBOSITY = 20
close() None[source]

Gracefully close and dispose of resources.

get(timeout: float = 0.0) Any[source]

Pop the next entry from the queue.

Return None if the queue is still empty after timeout seconds.

is_done() bool[source]

Check if the query result is done.

start() None[source]
class dae.query_variants.query_runners.QueryRunner(**kwargs: Any)[source]

Bases: ABC

Run a query in the backround using the provided executor.

adapt(adapter_func: Callable[[Any], Any]) None[source]
close() None[source]

Close query runner.

is_closed() bool[source]
is_done() bool[source]
is_started() bool[source]
put_value_in_result_queue(val: Any) None[source]

Put a value in the result queue.

The result queue is blocking, so it will wait until there is space for the new value. So it causes backpressure on the QueryRunners.

property result_queue: Queue | None
abstract run() None[source]
set_result_queue(result_queue: Queue) None[source]
set_study_id(study_id: str) None[source]
start(executor: Executor) None[source]

Module contents