CIF_VALIDATE(1)

πŸ’– CIF_VALIDATE(1) πŸ’–

okay bestie, welcome to the group chat where we talk about cif_validate β€” that's section 1 of the General Commands Manual, and yes she's iconic, she's CIF_VALIDATE(1), and she's about to become your Roman Empire.

✨ NAME ✨

cif_validate β€” validate CIF files against CIF dictionaries (DDL1 or DDLm).

πŸŽ€ SYNOPSIS πŸŽ€

cif_validate --dictionaries 'cif_core.dic,cif_cod.dic' --options
input1.cif input*.cif

πŸ¦‹ DESCRIPTION πŸ¦‹

So literally all she does, her whole vibe, her entire purpose: validate CIF files against CIF dictionaries (DDL1 or DDLm). no cap. that's the job. πŸ’…


πŸ‘‘ OPTIONS πŸ‘‘

get comfy, because this list is long and she ate every single time:

  • -d, --dictionaries 'cif_core.dic,cif_cod.dic' β€” the list of CIF dictionaries your CIF files should be validated against. DDL1 and DDLm dictionaries can both live in here, they coexist, they're roommates. heads up: the order of DDL1 dictionaries in this list MATTERS (go read --ddl1-dictionaries for the tea). list elements get separated by either ',' or ' '. and if your dictionary filenames contain those symbols? 🫠 then you gotta use --add-dictionary instead.
  • -D, --add-dictionary 'cif new dictionary.dic' β€” adds one more CIF dictionary to the end of the list.
  • --clear-dictionaries β€” yeets every single CIF dictionary out of the list. gone. empty. ghost town.
  • --ddl1-dictionaries 'cif_core.dic,cif_cod.dic' β€” the list of DDL1 dictionaries to validate against. the order here is important because it decides the dictionary merge order: the first DDL1 dictionary is the base, and every one after it gets merged in sequentially using OVERLAY mode. any DDL1 dictionaries you dropped into the generic list (see --dictionaries) get appended to the end of this list. elements separated by ',' or ' '. filenames with those symbols in them β†’ use --ddl1-add-dictionary instead.
  • --ddl1-add-dictionary β€” adds an extra dictionary to the end of the DDL1 dictionary list.
  • --ddl1-clear-dictionaries β€” removes all dictionaries from the DDL1 dictionary list.
  • --merge-ddl1-dictionaries β€” merges all the DDL1 dictionaries into one single virtual dictionary before validation happens. this is the default, bestie, she's just like that.
  • --no-merge-ddl1-dictionaries β€” does NOT merge the DDL1 dictionaries into a single virtual dictionary before validation.
⚠️ using this option may result in incorrect validation results. you've been warned, angel. 😭
  • --ddlm-dictionaries β€” the list of DDLm dictionaries to validate against. DDLm dictionaries you put in the generic list (see --dictionaries) get appended to the end of this list. elements separated by ',' or ' '. filenames containing those symbols β†’ use --ddlm-add-dictionary instead.
  • --ddlm-add-dictionary β€” adds an extra dictionary to the end of the DDLm dictionary list.
  • --ddlm-clear-dictionaries β€” removes all dictionaries from the DDLm dictionary list.
  • -I, --add-ddlm-import-path './ddlm/cod/' β€” prepends an extra directory to the dictionary import path. the import path is basically the list of directories where she goes looking for files that get imported by DDLm-compliant CIF dictionaries. directories you give her with this option get the highest priority and get searched before the directories listed in the COD_TOOLS_DDLM_IMPORT_PATH environment variable or the default import path (which is the directory of the importing dictionary).
  • --clear-ddlm-import-path β€” removes every directory from the dictionary import path that was added using --add-ddlm-import-path. neither the COD_TOOLS_DDLM_IMPORT_PATH environment variable nor the default import path is affected by this option. she's surgical like that.
  • --max-message-count 5 β€” the max number of validation messages reported for each unique combination of validation criteria and validated data items. provide a negative value (e.g. -1) and she'll output all the generated validation messages. Default: -1.
  • --range-su-multiplier 3.5 β€” the multiplier applied to the standard uncertainty (s.u.) when deciding if a numeric value sits inside the specified range. example: a multiplier of 3.5 means the value is treated as valid if it falls in the interval of [lower bound - 3.5 * s.u.; upper bound + 3.5 * s.u.]. Default: 3.
  • --treat-as-set _atom_site_refinement_flags β€” treats values of the given data items as a set. for historical reasons (the messiest of reasons), data values of some data items are sometimes formed by concatenating several of the available enumeration values. you can pass any number of data items like this:
cif_validate --treat-as-set _tag_1 --treat-as-set _tag_2

Default: '_atom_site_refinement_flags'.

  • --no-treat-as-set β€” do not treat values of any data items as sets (see --treat-as-set).
  • --report-deprecated β€” report the presence of data items that are marked as deprecated in the dictionaries. deprecation usually means the item got replaced by other data items β€” it's giving retirement era. πŸ’€
  • --no-report-deprecated, --ignore-deprecated β€” do not report presence of data items marked as deprecated in the dictionaries. Default.
  • --report-local-tags β€” report the presence of local data items.
  • --no-report-local-tags, --ignore-local-tags β€” do not report the presence of local data items. Default.
  • --ignore-case β€” ignore letter case while validating enumeration values. example: even though _atom_site_adp_type is restricted to values ('Uani', 'Uiso', 'Uovl', ...), the value 'UANI' would still be treated as valid. she's flexible. applies only to DDL1 dictionaries.
  • --respect-case, --case-sensitive, --dont-ignore-case β€” respect letter case while validating enumeration values. Default. applies only to DDL1 dictionaries.
  • --allow-double-precision-notation β€” treats numbers expressed using the double precision notation (e.g. 0.42D+7) as proper numbers, in a way that's compatible with DDL1 but not with the CIF_1.1 syntax. applies only to DDL1 dictionaries.
  • --no-allow-double-precision-notation β€” treats numbers expressed using the double precision notation (e.g. 0.42D+7) as character strings, in a way compatible with the CIF_1.1 syntax, but it does not cover the full extent of the DDL1 numbers variations. Default. applies only to DDL1 dictionaries.
  • --report-missing-su β€” reports measurand data items that aren't accompanied by standard uncertainty values. this behaviour follows the requirements imposed by the DDLm reference dictionary prior to version 4.0.1. applies only to DDLm dictionaries.
  • --no-report-missing-su, --ignore-missing-su β€” does not report measurand data items that aren't accompanied by standard uncertainty values. this behaviour follows the requirements imposed by the DDLm reference dictionary since version 4.0.1. Default. applies only to DDLm dictionaries.
  • --use-perl-parser β€” use the Perl parser to parse CIF files.
  • --use-c-parser β€” use the C parser to parse CIF files. Default.
  • -c, --always-continue β€” keep processing and return a successful return status even if errors are diagnosed. she's unbothered. πŸ’…
  • -c-, --always-die β€” stop and return an error status if errors are diagnosed.
  • --continue-on-errors β€” do not terminate the script if errors are raised.
  • --die-on-errors β€” terminate the script immediately if errors are raised. Default.
  • --continue-on-warnings β€” do not terminate the script if warnings are raised. Default.
  • --die-on-warnings β€” terminate the script immediately if warnings are raised.
  • --continue-on-notes β€” do not terminate the script if notes are raised. Default.
  • --die-on-notes β€” terminate the script immediately if notes are raised.
  • --help, --usage β€” output a short usage message (this message, hi) and exit.
  • -v, --version β€” output version information and exit.

🌈 ENVIRONMENT 🌈

  • COD_TOOLS_DDLM_IMPORT_PATH β€” a list of directories in which to look for the DDLm-compliant CIF dictionaries that are imported by other DDLm-compliant CIF dictionaries. list elements are separated by the colon symbol (':'). directories listed in COD_TOOLS_DDLM_IMPORT_PATH have a lower priority than the ones provided using the command line option (--add-dictionary-import-path), but a higher priority than the default import path directory (which is the directory of the importing dictionary).

🫢 REPORTING BUGS 🫢

found a bug? spill the tea, bestie β€” report cif_validate bugs using e-mail: cod-bugs@ibt.lt


and that's the whole page, angel. 🧚 she lives in the General Commands Manual as CIF_VALIDATE(1) β€” same name up top, same name down at the bottom in the footer, because consistency is main character energy. go validate something and slay. periodt. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from