itasc.contact_analysis.records¶
Qt-free bridge from catalogue records to a quantifier’s per-position files.
The studio carries positions as normalized catalogue record dicts (see
itasc.contact_analysis.catalog). Turning one into the
PositionInputs a quantifier
builds from — and resolving where that quantifier’s artifact lives — is pure path
logic with no Qt. It lives here (rather than in the napari studio layer) so the
headless aggregation backend (shape_tables) and the standalone
itasc-aggregate wheel can resolve the same paths the pipeline does.
Functions
|
The populated (non- |
|
Where quantifier's artifact lives for a catalogue record. |
|
Build |
|
Shared params overlaid with the record's own required-build-param values. |
|
|
- itasc.contact_analysis.records.position_inputs_from_record(record)[source]¶
Build
PositionInputsfrom a normalized catalogue record.pixel_size_um/time_interval_sare global build params: they are taken only from the value stamped on the record (the Parameters panel’s px/Δt), never auto-resolved from a position’s config or label TIFF tags. Absent ⇒None.- Return type:
- Parameters:
record (dict)
- itasc.contact_analysis.records.output_for_record(quantifier, record)[source]¶
Where quantifier’s artifact lives for a catalogue record.
Contacts keeps using the catalogue’s explicit
contact_analysis_pathcolumn — it predates the quantifier seam and may hold a custom nested path that the per-position read/visualize paths also rely on, so building must target the same file. Every other quantifier derives its destination fromQuantifier.default_output().- Return type:
- Parameters:
quantifier (Quantifier)
record (dict)
- itasc.contact_analysis.records.available_fields(inputs)[source]¶
The populated (non-
None)PositionInputsfield names — the satisfied prerequisites a quantifier’srequiresis checked against.- Return type:
- Parameters:
inputs (PositionInputs)
- itasc.contact_analysis.records.record_build_params(quantifier, record, params)[source]¶
Shared params overlaid with the record’s own required-build-param values.
A param like pixel size can be set per-position on the record (the value the build actually reads via
PositionInputs) instead of in the shared bar, so the build-param gate must see both. The record’s own value wins where present, mirroringrun()’s per-record stamping.
- itasc.contact_analysis.records.supported_quantities(records, *, params=None)[source]¶
quantity_ids of the pooled quantifiers records can actually produce.A pooled quantifier (one declaring
table_keys) is supported when at least one record satisfies both gatesshape_tables.build_table()applies per position: itsrequiresinputs are present (Quantifier.can_build()) and itsrequired_build_paramsare satisfied (pixel size, FOV area, …). That makes “supported” ⟺ “this table would pool at least one non-empty row” — the exact predicate the Aggregate UI greys its checkboxes against, so an enabled box never promises a table the run would silently skip. Producers (notable_keys, e.g.contacts) are never pooled and so never reported.