Property Status structure¶
Format¶
{
dictionary,"numeric"
, "enum"
or "func"
true
true
[
list of integers facet descriptors ]
"numeric"
[
list]
"enum"
[
values status list[
list]
, ... ]
[
list of variants for panel unit ]
[
]
"func"
null``*optional* ``[
values status list[
list]
, ... ]
}
Description¶
The data structure is used in return values of requests ds_stat, dtree_stat, statunits and statfunc. It represents status report for a filtering property applied to selected set of variants. In case of workspace selection also applies to transcript variants.
See discussion in Status report mechanism (with delays) for understanding general principle and details.
See discussion in UX settings of filtration properties for understanding UX settings for filtering properties: title, tooltip, classes, render-mode.
In context of requests ds_stat, dtree_stat status report can be incomplete. In this case the property incomplete is set and details of status (min/max/count for numeric properties and variants for enum ones) do not present in structure.
In complete state details of status are always set. If status reports for filtering properties (of numeric or enum type) is incomplete, use request statunits to get them in complete state.
In detailed case (workspace context) the main items for counting are transcript variants, so count values form triplet of values in list, first one is for transcript variants, second for DNA ones, and last for transcripts. Otherwise only single DNA variant count is provided in lists.
Property sub-kind can have the following values (transcipt-based subkinds are provided only in workspace context):
kind
sub-kind
"numeric"
"int"
"float"
"transcript-int"
"transcript-float"
enum
"status"
"multi"
"transcript-status"
"transcript-multi"
func
type of function
Variants for enumerated properties¶
Complete status report for enumerated filtering properties contains counters for all value variants registered in dataset. So in generic case report contains multiple entries with zero counts.
On stage of rendering status report it is reasonable to hide entries with zero counts. Really, there is no need for user to see values that do not present in selection. So in "normal" case they are to be hidden.
But: rendering of status report can be done in context of existing condition, and that condition might refer variants with zero count in current selection. In this case zero count variants should be visible and actual of them should be checked.
Moreover: some variants referred in condition might not be registered in this concrete dataset, and the user does not need to care of that fact. So these variants should be added to list of variants on the client side (with zero counts).
And yet one problem: some variant lists have uncontrolled size. For example, it happens with property Symbol
in almost any XL-dataset: indeed, tens of thousands known genes can appear in this list! In context of workspace, with no more than 9000 variants, this list is not more than some thousands, it is comparatively good. But even in this case: the user has problems in selection of interested variant in so huge lists.
It is really heavy problem for the current version of the system. In future release there should appear an effective and (probably) complex solution of this problem.
Variety/panel properties¶
Variety and panel properties are enumerated properties with specific behavior discussed here:
variants for panel property status structure is always empty, real content of this list contains in dual variety property status structure in the field panels
variants for variety property status structure is joined list of blocks, and split-info list describes these blocks in format
[
string block type, int count of variants in block]
. Block is present only if it is not empty, it contains sorted list of symbols, and there can be up to two blocks in any case:
block of type
"active"
represents full statistic for active symbols, it is the first block, if presentsblock of type
"rest"
represents statistic for all symbol with non-zero statistic that are not active, only if the length of this block is small enough (300 items tn the current version)block of type
"used"
represents full statistic for non-active symbol used in applied filter or decision tree, if such symbols exist and if"rest"
block is absent (i.e. list of rest is too large)rest-count presents in response only if
"rest"
block is absent
Functions support¶
For functions property status structure is formed in two different contexts:
requests ds_stat, dtree_stat just declare placeholders of function in functions list, so requests return structure with
null
as variants and additional properties of function environmentrequest statfunc returns property status with non-optional variants or err in case of error in evaluation;
the client can send multiple requests of such kind in short period of time, so for purposes of request identification the property status in this case contains also:
functional environment: values of all arguments,
value rq_id (and no in context of decision tree)
See Filtering functions for details and function reference.
See also¶
UX settings of filtration properties