dara.search.data_model module#

Search node data model.

pydantic model SearchNodeData[source]#

Bases: BaseModel

Show JSON schema
{
   "title": "SearchNodeData",
   "type": "object",
   "properties": {
      "current_result": {
         "default": null,
         "title": "Current Result"
      },
      "current_phases": {
         "items": {
            "$ref": "#/$defs/RefinementPhase"
         },
         "title": "Current Phases",
         "type": "array"
      },
      "group_id": {
         "default": -1,
         "minimum": -1,
         "title": "Group Id",
         "type": "integer"
      },
      "fom": {
         "default": 0,
         "minimum": 0,
         "title": "Fom",
         "type": "number"
      },
      "lattice_strain": {
         "default": 0,
         "title": "Lattice Strain",
         "type": "number"
      },
      "status": {
         "default": "pending",
         "enum": [
            "pending",
            "max_depth",
            "error",
            "no_improvement",
            "running",
            "expanded",
            "similar_structure",
            "low_weight_fraction"
         ],
         "title": "Status",
         "type": "string"
      },
      "isolated_missing_peaks": {
         "anyOf": [
            {
               "items": {
                  "items": {
                     "type": "number"
                  },
                  "type": "array"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Isolated Missing Peaks"
      },
      "isolated_extra_peaks": {
         "anyOf": [
            {
               "items": {
                  "items": {
                     "type": "number"
                  },
                  "type": "array"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Isolated Extra Peaks"
      },
      "peak_matcher_scores": {
         "anyOf": [
            {
               "additionalProperties": {
                  "items": {
                     "type": "number"
                  },
                  "type": "array"
               },
               "propertyNames": {
                  "$ref": "#/$defs/RefinementPhase"
               },
               "type": "object"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Peak Matcher Scores"
      },
      "peak_matcher_threshold": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Peak Matcher Threshold"
      }
   },
   "$defs": {
      "RefinementPhase": {
         "description": "Input phase for refinement.\n\nContains the path to the phase file and the specific parameters for the phase.",
         "properties": {
            "path": {
               "description": "The path to the phase file.",
               "format": "path",
               "title": "Path",
               "type": "string"
            },
            "params": {
               "additionalProperties": true,
               "description": "The specific parameters for the phase.",
               "title": "Params",
               "type": "object"
            }
         },
         "required": [
            "path"
         ],
         "title": "RefinementPhase",
         "type": "object"
      }
   },
   "required": [
      "current_phases"
   ]
}

Fields:
field current_phases: list[RefinementPhase] [Required]#
field current_result: Optional[RefinementResult] [Required]#
field fom: float = 0#
Constraints:
  • ge = 0

field group_id: int = -1#
Constraints:
  • ge = -1

field isolated_extra_peaks: Optional[list[list[float]]] = None#
field isolated_missing_peaks: Optional[list[list[float]]] = None#
field lattice_strain: float = 0#
field peak_matcher_scores: Optional[dict[RefinementPhase, list[float]]] = None#
field peak_matcher_threshold: Optional[float] = None#
field status: Literal['pending', 'max_depth', 'error', 'no_improvement', 'running', 'expanded', 'similar_structure', 'low_weight_fraction'] = 'pending'#
get_peak_matcher(peak_obs, *args, **kwargs)[source]#
Return type:

PeakMatcher

property pretty_output#
pydantic model SearchResult[source]#

Bases: BaseModel

Show JSON schema
{
   "title": "SearchResult",
   "type": "object",
   "properties": {
      "refinement_result": {
         "default": null,
         "title": "Refinement Result"
      },
      "phases": {
         "items": {
            "items": {
               "$ref": "#/$defs/RefinementPhase"
            },
            "type": "array"
         },
         "title": "Phases",
         "type": "array"
      },
      "foms": {
         "items": {
            "items": {
               "type": "number"
            },
            "type": "array"
         },
         "title": "Foms",
         "type": "array"
      },
      "lattice_strains": {
         "items": {
            "items": {
               "type": "number"
            },
            "type": "array"
         },
         "title": "Lattice Strains",
         "type": "array"
      },
      "missing_peaks": {
         "anyOf": [
            {
               "items": {
                  "items": {
                     "type": "number"
                  },
                  "type": "array"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "title": "Missing Peaks"
      },
      "extra_peaks": {
         "anyOf": [
            {
               "items": {
                  "items": {
                     "type": "number"
                  },
                  "type": "array"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "title": "Extra Peaks"
      }
   },
   "$defs": {
      "RefinementPhase": {
         "description": "Input phase for refinement.\n\nContains the path to the phase file and the specific parameters for the phase.",
         "properties": {
            "path": {
               "description": "The path to the phase file.",
               "format": "path",
               "title": "Path",
               "type": "string"
            },
            "params": {
               "additionalProperties": true,
               "description": "The specific parameters for the phase.",
               "title": "Params",
               "type": "object"
            }
         },
         "required": [
            "path"
         ],
         "title": "RefinementPhase",
         "type": "object"
      }
   },
   "required": [
      "phases",
      "foms",
      "lattice_strains",
      "missing_peaks",
      "extra_peaks"
   ]
}

Fields:
field extra_peaks: Optional[list[list[float]]] [Required]#
field foms: tuple[tuple[float, ...], ...] [Required]#
field lattice_strains: tuple[tuple[float, ...], ...] [Required]#
field missing_peaks: Optional[list[list[float]]] [Required]#
field phases: tuple[tuple[RefinementPhase, ...], ...] [Required]#
field refinement_result: RefinementResult [Required]#
visualize(diff_offset=False)[source]#
property grouped_phases: list[list[tuple[Composition, list[Path]]]]#

Group the phases based on their composition.