InChI
 
Loading...
Searching...
No Matches
inchicmp.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: MIT
3 * Copyright (c) 2024 IUPAC and InChI Trust
4 */
5
6
7#ifndef _INCHICMP_H_
8#define _INCHICMP_H_
9
10
12 INCHIDIFF_ZERO = 0x00000000,
13 INCHIDIFF_PROBLEM = 0x00000001, /* severe: at least one InChI does not exist */
14 INCHIDIFF_NUM_AT = 0x00000001, /* severe: different number of atoms in the skeleton */
15 INCHIDIFF_ATOMS = 0x00000001, /* severe: diiferent types of skeleton atoms */
16 INCHIDIFF_NUM_EL = 0x00000001, /* severe: formulas differ in another element */
17 INCHIDIFF_CON_LEN = 0x00000001, /* severe: different connection table lengths */
18 INCHIDIFF_CON_TBL = 0x00000001, /* severe: different connection tables */
19 INCHIDIFF_POSITION_H = 0x00000002, /* difference in non-taut (Mobile-H) or all H (Fixed-H) location/number */
20 INCHIDIFF_MORE_FH = 0x00000004, /* extra fixed H */
21 INCHIDIFF_LESS_FH = 0x00000004, /* missing fixed H */
22 INCHIDIFF_MORE_H = 0x00000008, /* formulas differ in number of H */
23 INCHIDIFF_LESS_H = 0x00000008, /* formulas differ in number of H */
24 INCHIDIFF_NO_TAUT = 0x00000010, /* restored structure has no taut groups while the original InChI has some */
25 INCHIDIFF_WRONG_TAUT = 0x00000020, /* restored has tautomerism while the original does not have it */
26 INCHIDIFF_SINGLE_TG = 0x00000040, /* restored has 1 taut. group while the original InChI has multiple tg */
27 INCHIDIFF_MULTIPLE_TG = 0x00000080, /* restored has multiple tg while the original InChI has only one tg */
28 INCHIDIFF_EXTRA_TG_ENDP = 0x00000100, /* extra tautomeric endpoint(s) in restored structure */
29 INCHIDIFF_MISS_TG_ENDP = 0x00000100, /* one or more tg endpoint is not in the restored structure */
30 INCHIDIFF_DIFF_TG_ENDP = 0x00000100, /* lists of tg endpoints are different */
31 INCHIDIFF_NUM_TG = 0x00000200, /* different number of tautomeric groups */
32 INCHIDIFF_TG = 0x00000200, /* different tautomeric groups */
33 INCHIDIFF_NUM_ISO_AT = 0x00000400, /* ?severe: restored struct. has different number of isotopic atoms */
34 INCHIDIFF_ISO_AT = 0x00000400, /* ?severe: restored struct. has different locations/isotopes of isotopic atoms */
35 INCHIDIFF_REM_ISO_H = 0x00000800, /* isotopic H removed */
36 INCHIDIFF_MOB_ISO_H = 0x00001000, /* different number of mobile exchangeable isotopic H */
37 INCHIDIFF_CHARGE = 0x00002000, /* restored structure has different charge */
38 INCHIDIFF_REM_PROT = 0x00004000, /* proton(s) removed/added from the restored structure */
39 INCHIDIFF_MOBH_PROTONS = 0x00008000, /* different proton balance */
40 INCHIDIFF_SC_INV = 0x00010000, /* restores structure has different inversion stereocenter mark */
41 INCHIDIFF_SC_PARITY = 0x00020000, /* restored structure has stereoatoms or allenes with different parity */
42 INCHIDIFF_SC_EXTRA_UNDF = 0x00040000, /* restored structure has extra undefined stereocenter(s) */
43 INCHIDIFF_SC_EXTRA = 0x00080000, /* restored structure has extra stereocenter(s) */
44 INCHIDIFF_SC_MISS_UNDF = 0x00100000, /* restored structure has not some undefined stereocenter(s) */
45 INCHIDIFF_SC_MISS = 0x00200000, /* restored structure has not some stereocenters that are not undefined */
46 INCHIDIFF_SB_PARITY = 0x00400000, /* restored structure has stereobonds or cumulenes with different parity */
47 INCHIDIFF_SB_EXTRA_UNDF = 0x00800000, /* restored structure has extra undefined stereobond(s) */
48 INCHIDIFF_SB_EXTRA = 0x01000000, /* restored structure has extra stereobond(s) */
49 INCHIDIFF_SB_MISS_UNDF = 0x02000000, /* restored structure has not some undefined stereocenters */
50 INCHIDIFF_SB_MISS = 0x04000000, /* restored structure has not some stereobonds that are not undefined */
51 INCHIDIFF_COMP_HLAYER = 0x08000000, /* Restored component has Mobile-H layer instead of both Mobile-H & Fixed-H or both instead of one */
52 INCHIDIFF_COMP_NUMBER = 0x10000000, /* wrong number of components */
53 INCHIDIFF_STR2INCHI_ERR = 0x20000000 /* Restored structure to InChI conversion error */
54 /* reserved
55 0x40000000
56 0x80000000
57 */
59
75
76
82
87
88
89#define INCHIDIFF_SB (INCHIDIFF_SB_PARITY | INCHIDIFF_SB_EXTRA_UNDF | INCHIDIFF_SB_EXTRA | INCHIDIFF_SB_MISS_UNDF | INCHIDIFF_SB_MISS)
90#define INCHIDIFF_SC (INCHIDIFF_SC_PARITY | INCHIDIFF_SC_EXTRA_UNDF | INCHIDIFF_SC_EXTRA | INCHIDIFF_SC_MISS_UNDF | INCHIDIFF_SC_MISS)
91
92#define INCHIDIFF_CONSTIT (INCHIDIFF_POSITION_H | INCHIDIFF_MORE_FH | INCHIDIFF_LESS_FH | INCHIDIFF_MORE_H | INCHIDIFF_LESS_H |\
93 INCHIDIFF_NO_TAUT | INCHIDIFF_WRONG_TAUT | INCHIDIFF_SINGLE_TG | INCHIDIFF_MULTIPLE_TG | \
94 INCHIDIFF_NUM_TG | INCHIDIFF_EXTRA_TG_ENDP | INCHIDIFF_MISS_TG_ENDP | INCHIDIFF_TG | \
95 INCHIDIFF_NUM_ISO_AT | INCHIDIFF_ISO_AT | INCHIDIFF_CHARGE | INCHIDIFF_REM_PROT | INCHIDIFF_REM_ISO_H |\
96 INCHIDIFF_DIFF_TG_ENDP)
97#define INCHIDIFF_STEREO (INCHIDIFF_SC_INV | INCHIDIFF_SC_PARITY | INCHIDIFF_SC_EXTRA_UNDF | INCHIDIFF_SC_EXTRA | \
98 INCHIDIFF_SC_MISS_UNDF | INCHIDIFF_SC_MISS | INCHIDIFF_SB_PARITY | INCHIDIFF_SB_EXTRA_UNDF |\
99 INCHIDIFF_SB_EXTRA | INCHIDIFF_SB_MISS_UNDF | INCHIDIFF_SB_MISS)
100
101
102#endif /* _INCHICMP_H_ */
tagtagCompareInchiMsgGroupID
Definition inchicmp.h:60
@ IDGRP_COMP
Definition inchicmp.h:72
@ IDGRP_H
Definition inchicmp.h:63
@ IDGRP_ISO_H
Definition inchicmp.h:68
@ IDGRP_CHARGE
Definition inchicmp.h:66
@ IDGRP_HLAYER
Definition inchicmp.h:71
@ IDGRP_ZERO
Definition inchicmp.h:61
@ IDGRP_CONV_ERR
Definition inchicmp.h:73
@ IDGRP_ISO_AT
Definition inchicmp.h:65
@ IDGRP_ERR
Definition inchicmp.h:62
@ IDGRP_SC
Definition inchicmp.h:69
@ IDGRP_PROTONS
Definition inchicmp.h:67
@ IDGRP_SB
Definition inchicmp.h:70
@ IDGRP_MOB_GRP
Definition inchicmp.h:64
enum tagtagCompareInchiMsgGroupID CMP_INCHI_MSG_GROUP_ID
struct tagCompareInchiMsg CMP_INCHI_MSG
enum tagInchiCompareDiffBits INCHIDIFF
struct tagCompareInchiMsgGroup CMP_INCHI_MSG_GROUP
tagInchiCompareDiffBits
Definition inchicmp.h:11
@ INCHIDIFF_WRONG_TAUT
Definition inchicmp.h:25
@ INCHIDIFF_SB_EXTRA_UNDF
Definition inchicmp.h:47
@ INCHIDIFF_MOB_ISO_H
Definition inchicmp.h:36
@ INCHIDIFF_POSITION_H
Definition inchicmp.h:19
@ INCHIDIFF_SC_INV
Definition inchicmp.h:40
@ INCHIDIFF_COMP_NUMBER
Definition inchicmp.h:52
@ INCHIDIFF_MORE_FH
Definition inchicmp.h:20
@ INCHIDIFF_MOBH_PROTONS
Definition inchicmp.h:39
@ INCHIDIFF_DIFF_TG_ENDP
Definition inchicmp.h:30
@ INCHIDIFF_EXTRA_TG_ENDP
Definition inchicmp.h:28
@ INCHIDIFF_ATOMS
Definition inchicmp.h:15
@ INCHIDIFF_REM_ISO_H
Definition inchicmp.h:35
@ INCHIDIFF_SB_MISS
Definition inchicmp.h:50
@ INCHIDIFF_SB_MISS_UNDF
Definition inchicmp.h:49
@ INCHIDIFF_SINGLE_TG
Definition inchicmp.h:26
@ INCHIDIFF_SB_PARITY
Definition inchicmp.h:46
@ INCHIDIFF_SC_EXTRA
Definition inchicmp.h:43
@ INCHIDIFF_LESS_H
Definition inchicmp.h:23
@ INCHIDIFF_COMP_HLAYER
Definition inchicmp.h:51
@ INCHIDIFF_REM_PROT
Definition inchicmp.h:38
@ INCHIDIFF_CON_TBL
Definition inchicmp.h:18
@ INCHIDIFF_LESS_FH
Definition inchicmp.h:21
@ INCHIDIFF_SC_MISS
Definition inchicmp.h:45
@ INCHIDIFF_NUM_ISO_AT
Definition inchicmp.h:33
@ INCHIDIFF_ISO_AT
Definition inchicmp.h:34
@ INCHIDIFF_NO_TAUT
Definition inchicmp.h:24
@ INCHIDIFF_SC_EXTRA_UNDF
Definition inchicmp.h:42
@ INCHIDIFF_MULTIPLE_TG
Definition inchicmp.h:27
@ INCHIDIFF_ZERO
Definition inchicmp.h:12
@ INCHIDIFF_SC_PARITY
Definition inchicmp.h:41
@ INCHIDIFF_TG
Definition inchicmp.h:32
@ INCHIDIFF_MORE_H
Definition inchicmp.h:22
@ INCHIDIFF_NUM_EL
Definition inchicmp.h:16
@ INCHIDIFF_PROBLEM
Definition inchicmp.h:13
@ INCHIDIFF_CHARGE
Definition inchicmp.h:37
@ INCHIDIFF_MISS_TG_ENDP
Definition inchicmp.h:29
@ INCHIDIFF_SC_MISS_UNDF
Definition inchicmp.h:44
@ INCHIDIFF_NUM_TG
Definition inchicmp.h:31
@ INCHIDIFF_STR2INCHI_ERR
Definition inchicmp.h:53
@ INCHIDIFF_NUM_AT
Definition inchicmp.h:14
@ INCHIDIFF_SB_EXTRA
Definition inchicmp.h:48
@ INCHIDIFF_CON_LEN
Definition inchicmp.h:17
Definition inchicmp.h:83
CMP_INCHI_MSG_GROUP_ID nGroupID
Definition inchicmp.h:84
const char * szGroupName
Definition inchicmp.h:85
Definition inchicmp.h:77
const char * szMsg
Definition inchicmp.h:80
CMP_INCHI_MSG_GROUP_ID nGroupID
Definition inchicmp.h:79
INCHIDIFF nBit
Definition inchicmp.h:78