Skip to content

Selecting a calculation, conformer or saddle for a stated question

One page for whoever reads stored structures and energies of one species entry or one transition state entry and needs to know which stored result answers a stated question, and why. It describes the three selection endpoints, what each answer means, and what they refuse to claim.

In plain terms: an entry can hold many calculations from different programs, methods and basis sets, and several conformer basins or saddle determinations. Browsing lists them in a fixed order. Selection is a separate, opt-in question: "of the stored results that can answer this exact question, which one is lowest or best supported, and how do you know?" Total energies from different methods are not on one scale, so the honest answer is often "these are alternatives and nothing ranks them", and the endpoint says so instead of picking one.

For the energy difference between a conformer and a reference conformer you name, see the separate operation in docs/guides/relative_conformer_energies.md; relative energies are not a selection.

What it is, and what it is not

  • Read-only. Nothing is stored and nothing is edited. Browse orders are unchanged.
  • Opt-in. The browse endpoints keep their order. A selection is a separate POST.
  • Not a recommendation. A curator or a dataset release recommends records; selection applies stated conditions to what is stored and shows its working.
  • Not a global-search certificate. Coverage is the population you are allowed to see. A complete claim is not evidence that every conformer or saddle was found.
  • No method ranking. TCKDB ranks no method or protocol above another. A lower absolute energy never prefers a protocol, and the first record in a list is display order (browse_order.md).

The three endpoints

Grain Endpoint Entry ref
Calculations of a species entry POST /api/v1/scientific/species-entries/{ref}/calculations/select spe_...
Conformer basins of a species entry POST /api/v1/scientific/species-entries/{ref}/conformers/select spe_...
Saddle determinations of a transition state entry POST /api/v1/scientific/transition-state-entries/{ref}/evidence/select tse_...

The transition-state route takes the transition state entry (tse_), not the transition-state concept (ts_): evidence belongs to the entry that holds the geometries. Each endpoint has a /manifest sibling that takes the same request and returns the replayable manifest (a checksummed record of the inputs and decision; checksums, not signatures). An integer id, or a ref of the wrong kind, is refused.

The request

Every body field is optional, the body may be empty, and unknown fields are refused. The server applies its own defaults; the client libraries invent none.

Field Meaning
intent Calculations: recorded_minimum, protocol_coverage. Conformers: validated_minimum, qualify_evidence, protocol_coverage. Transition states: validated_saddle, qualify_evidence, protocol_coverage.
quantity electronic_energy or zero_kelvin_energy. null is allowed only for qualify_evidence (a structural claim with no number). Enthalpy, Gibbs energy, barrier and rate are recognised but deferred and are refused with structure_selection_unsupported.
coverage_requirement known_values (order what is known, conditional on it) or all_requested_members (every requested member must be eligible and comparable).
validation_claim local_minimum, first_order_saddle, higher_order_saddle or reactive_connectivity.
min_review_status, permitted_quality Floors on review and calculation quality, applied on top of the read profile.
geometry_ref, member_refs Restrict to one geometry (geom_...) or named members.
recipe, require_stable_reference The method recipe the caller asserts, and whether a stable reference is required.
require_connectivity Transition states only.
administrative_policy, result_mode, repeat_policy Tie handling, whether to name the first record in display order, and how repeated calculations are treated.

The read profile is the usual ?profile=exploratory|curated query parameter. Other query keys on the POST are refused. There is no candidate cap, paging or sort field: the engineering bounds belong to the server. Above them the endpoint refuses with a coded 422 (structure_selection_population_too_large, structure_selection_evidence_too_large, structure_selection_traversal_too_deep, structure_selection_manifest_too_large). A caller can never raise the manifest byte bound.

Under the curated profile, records below the floor behave as missing everywhere: lineage, validation evidence, counts and depth. The manifest then withholds the excluded population (excluded_by_review_withheld: true) so that it still replays.

Reading the answer

Quote outcome and basis verbatim.

Outcome Meaning
recorded_minimum The lowest known eligible value inside one justified cohort. Ties are all returned.
representative_minimum The lowest of per-source representatives under repeat_policy=administrative_representative. It is not the minimum of every stored value.
validated_corpus_minimum The lowest validated basin or saddle within one cohort.
qualified_evidence These determinations support the stated claim. No number.
sole_eligible_candidate Only one candidate can answer; it is not compared with anything.
incomparable_alternatives Several protocols each have a minimum and no scale ranks them. Nothing is selected.
unresolved_comparability No cohort could be ordered. Nothing is selected.
evidence_conflict Evidence contradicts itself. Nothing is selected.
no_candidates, energy_unavailable, no_applicable_candidate Nothing to compare, no usable energy, or nothing meets the stated requirements.

A negative outcome is an answer, not an error. A cohort is the same established recipe, quantity, energy convention and scope; values compare exactly, with no tolerance. When any cohort cannot be ordered, no administrative winner is named.

Minimum and saddle claims are judged by the size of imaginary frequencies against the stored threshold, never by counting them. A finding is settled only by an authorised adjudication about the same subject.

Examples

Lowest recorded electronic energy, server defaults:

curl -X POST "$BASE/api/v1/scientific/species-entries/$SPE/calculations/select" -H 'content-type: application/json' -d '{}'

Which determinations support a first-order saddle, no number wanted:

{ "intent": "qualify_evidence", "quantity": null, "validation_claim": "first_order_saddle" }

Python client: client.select_species_calculations(ref, ...), select_conformer_basins, select_transition_state_evidence, and the get_..._selection_manifest siblings. MCP tools: tckdb_select_species_entry_calculations, tckdb_select_species_entry_conformers, tckdb_select_transition_state_entry_evidence.

Plan deviations

  • The transition-state route is entry-based (/transition-state-entries/{ref}/evidence/select).
  • A browse "scientific include" for selection is deferred; the select endpoints serve that need.

See backend/docs/specs/structure_selection_decision.md for the decision, manifest and replay rules.