Class: Chemicalml::Convention::Molecular::Constraints::AtomElementTypeShouldBeInPeriodicTable

Inherits:
Constraint::NodeConstraint
  • Object
show all
Includes:
Chemicalml::Cml::Enums
Defined in:
lib/chemicalml/convention/molecular/constraints/atom_element_type_should_be_in_periodic_table.rb

Overview

An <atom>'s elementType attribute SHOULD be one of the XSD elementTypeType enum values (the periodic table plus the special "Du" dummy and "R" group placeholder). Warns on typos like "Carb" or "X".

Constant Summary

Constants included from Chemicalml::Cml::Enums

Chemicalml::Cml::Enums::ACTIONORDER_VALUES, Chemicalml::Cml::Enums::ANGLEUNITS_VALUES, Chemicalml::Cml::Enums::CELLPARAMETER_VALUES, Chemicalml::Cml::Enums::CHIRALITY_VALUES, Chemicalml::Cml::Enums::DIMENSION_VALUES, Chemicalml::Cml::Enums::EIGENORIENTATION_VALUES, Chemicalml::Cml::Enums::ELEMENT_TYPE_VALUES, Chemicalml::Cml::Enums::ERRORBASIS_VALUES, Chemicalml::Cml::Enums::FORMAT_VALUES, Chemicalml::Cml::Enums::FT_VALUES, Chemicalml::Cml::Enums::INHERIT_VALUES, Chemicalml::Cml::Enums::LATTICE_VALUES, Chemicalml::Cml::Enums::LINKTYPE_VALUES, Chemicalml::Cml::Enums::LM_VALUES, Chemicalml::Cml::Enums::MATRIX_VALUES, Chemicalml::Cml::Enums::MEASUREMENT_VALUES, Chemicalml::Cml::Enums::ORDER_VALUES, Chemicalml::Cml::Enums::PEAKMULTIPLICITY_VALUES, Chemicalml::Cml::Enums::PEAKSHAPE_VALUES, Chemicalml::Cml::Enums::PEAKSTRUCTURETYPE_VALUES, Chemicalml::Cml::Enums::REACTIONFORMAT_VALUES, Chemicalml::Cml::Enums::REACTIONROLE_VALUES, Chemicalml::Cml::Enums::REACTIONSTEPLISTTYPE_VALUES, Chemicalml::Cml::Enums::REACTIONTYPE_VALUES, Chemicalml::Cml::Enums::SCHEME_VALUES, Chemicalml::Cml::Enums::SHAPE_VALUES, Chemicalml::Cml::Enums::SPACE_VALUES, Chemicalml::Cml::Enums::SPECTRUMTYPE_VALUES, Chemicalml::Cml::Enums::STATE_VALUES, Chemicalml::Cml::Enums::STEREO_VALUES, Chemicalml::Cml::Enums::SUBSTANCELISTTYPE_VALUES, Chemicalml::Cml::Enums::TABLETYPE_VALUES

Instance Method Summary collapse

Methods inherited from Constraint::NodeConstraint

#check

Instance Method Details

#check_node(node, _path) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/chemicalml/convention/molecular/constraints/atom_element_type_should_be_in_periodic_table.rb', line 17

def check_node(node, _path)
  et = node.element_type.to_s.strip
  return [] if et.empty?
  return [] if ELEMENT_TYPE_VALUES.include?(et)

  [violation(path: yield_path(node),
             message: "atom #{node.id.inspect} elementType #{et.inspect} should be one of " \
                      "the periodic table symbols (e.g. C, H, O, Fe) — got #{et.inspect}",
             severity: :warning,
             value: et)]
end