InChI
 
Loading...
Searching...
No Matches
inchicmp.h
Go to the documentation of this file.
1/*
2 * International Chemical Identifier (InChI)
3 * Version 1
4 * Software version 1.07
5 * April 30, 2024
6 *
7 * MIT License
8 *
9 * Copyright (c) 2024 IUPAC and InChI Trust
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining a copy
12 * of this software and associated documentation files (the "Software"), to deal
13 * in the Software without restriction, including without limitation the rights
14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 * copies of the Software, and to permit persons to whom the Software is
16 * furnished to do so, subject to the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included in all
19 * copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 * SOFTWARE.
28*
29* The InChI library and programs are free software developed under the
30 * auspices of the International Union of Pure and Applied Chemistry (IUPAC).
31 * Originally developed at NIST.
32 * Modifications and additions by IUPAC and the InChI Trust.
33 * Some portions of code were developed/changed by external contributors
34 * (either contractor or volunteer) which are listed in the file
35 * 'External-contributors' included in this distribution.
36 *
37 * info@inchi-trust.org
38 *
39*/
40
41
42#ifndef _INCHICMP_H_
43#define _INCHICMP_H_
44
45
47 INCHIDIFF_ZERO = 0x00000000,
48 INCHIDIFF_PROBLEM = 0x00000001, /* severe: at least one InChI does not exist */
49 INCHIDIFF_NUM_AT = 0x00000001, /* severe: different number of atoms in the skeleton */
50 INCHIDIFF_ATOMS = 0x00000001, /* severe: diiferent types of skeleton atoms */
51 INCHIDIFF_NUM_EL = 0x00000001, /* severe: formulas differ in another element */
52 INCHIDIFF_CON_LEN = 0x00000001, /* severe: different connection table lengths */
53 INCHIDIFF_CON_TBL = 0x00000001, /* severe: different connection tables */
54 INCHIDIFF_POSITION_H = 0x00000002, /* difference in non-taut (Mobile-H) or all H (Fixed-H) location/number */
55 INCHIDIFF_MORE_FH = 0x00000004, /* extra fixed H */
56 INCHIDIFF_LESS_FH = 0x00000004, /* missing fixed H */
57 INCHIDIFF_MORE_H = 0x00000008, /* formulas differ in number of H */
58 INCHIDIFF_LESS_H = 0x00000008, /* formulas differ in number of H */
59 INCHIDIFF_NO_TAUT = 0x00000010, /* restored structure has no taut groups while the original InChI has some */
60 INCHIDIFF_WRONG_TAUT = 0x00000020, /* restored has tautomerism while the original does not have it */
61 INCHIDIFF_SINGLE_TG = 0x00000040, /* restored has 1 taut. group while the original InChI has multiple tg */
62 INCHIDIFF_MULTIPLE_TG = 0x00000080, /* restored has multiple tg while the original InChI has only one tg */
63 INCHIDIFF_EXTRA_TG_ENDP = 0x00000100, /* extra tautomeric endpoint(s) in restored structure */
64 INCHIDIFF_MISS_TG_ENDP = 0x00000100, /* one or more tg endpoint is not in the restored structure */
65 INCHIDIFF_DIFF_TG_ENDP = 0x00000100, /* lists of tg endpoints are different */
66 INCHIDIFF_NUM_TG = 0x00000200, /* different number of tautomeric groups */
67 INCHIDIFF_TG = 0x00000200, /* different tautomeric groups */
68 INCHIDIFF_NUM_ISO_AT = 0x00000400, /* ?severe: restored struct. has different number of isotopic atoms */
69 INCHIDIFF_ISO_AT = 0x00000400, /* ?severe: restored struct. has different locations/isotopes of isotopic atoms */
70 INCHIDIFF_REM_ISO_H = 0x00000800, /* isotopic H removed */
71 INCHIDIFF_MOB_ISO_H = 0x00001000, /* different number of mobile exchangeable isotopic H */
72 INCHIDIFF_CHARGE = 0x00002000, /* restored structure has different charge */
73 INCHIDIFF_REM_PROT = 0x00004000, /* proton(s) removed/added from the restored structure */
74 INCHIDIFF_MOBH_PROTONS = 0x00008000, /* different proton balance */
75 INCHIDIFF_SC_INV = 0x00010000, /* restores structure has different inversion stereocenter mark */
76 INCHIDIFF_SC_PARITY = 0x00020000, /* restored structure has stereoatoms or allenes with different parity */
77 INCHIDIFF_SC_EXTRA_UNDF = 0x00040000, /* restored structure has extra undefined stereocenter(s) */
78 INCHIDIFF_SC_EXTRA = 0x00080000, /* restored structure has extra stereocenter(s) */
79 INCHIDIFF_SC_MISS_UNDF = 0x00100000, /* restored structure has not some undefined stereocenter(s) */
80 INCHIDIFF_SC_MISS = 0x00200000, /* restored structure has not some stereocenters that are not undefined */
81 INCHIDIFF_SB_PARITY = 0x00400000, /* restored structure has stereobonds or cumulenes with different parity */
82 INCHIDIFF_SB_EXTRA_UNDF = 0x00800000, /* restored structure has extra undefined stereobond(s) */
83 INCHIDIFF_SB_EXTRA = 0x01000000, /* restored structure has extra stereobond(s) */
84 INCHIDIFF_SB_MISS_UNDF = 0x02000000, /* restored structure has not some undefined stereocenters */
85 INCHIDIFF_SB_MISS = 0x04000000, /* restored structure has not some stereobonds that are not undefined */
86 INCHIDIFF_COMP_HLAYER = 0x08000000, /* Restored component has Mobile-H layer instead of both Mobile-H & Fixed-H or both instead of one */
87 INCHIDIFF_COMP_NUMBER = 0x10000000, /* wrong number of components */
88 INCHIDIFF_STR2INCHI_ERR = 0x20000000 /* Restored structure to InChI conversion error */
89 /* reserved
90 0x40000000
91 0x80000000
92 */
94
110
111
117
122
123
124#define INCHIDIFF_SB (INCHIDIFF_SB_PARITY | INCHIDIFF_SB_EXTRA_UNDF | INCHIDIFF_SB_EXTRA | INCHIDIFF_SB_MISS_UNDF | INCHIDIFF_SB_MISS)
125#define INCHIDIFF_SC (INCHIDIFF_SC_PARITY | INCHIDIFF_SC_EXTRA_UNDF | INCHIDIFF_SC_EXTRA | INCHIDIFF_SC_MISS_UNDF | INCHIDIFF_SC_MISS)
126
127#define INCHIDIFF_CONSTIT (INCHIDIFF_POSITION_H | INCHIDIFF_MORE_FH | INCHIDIFF_LESS_FH | INCHIDIFF_MORE_H | INCHIDIFF_LESS_H |\
128 INCHIDIFF_NO_TAUT | INCHIDIFF_WRONG_TAUT | INCHIDIFF_SINGLE_TG | INCHIDIFF_MULTIPLE_TG | \
129 INCHIDIFF_NUM_TG | INCHIDIFF_EXTRA_TG_ENDP | INCHIDIFF_MISS_TG_ENDP | INCHIDIFF_TG | \
130 INCHIDIFF_NUM_ISO_AT | INCHIDIFF_ISO_AT | INCHIDIFF_CHARGE | INCHIDIFF_REM_PROT | INCHIDIFF_REM_ISO_H |\
131 INCHIDIFF_DIFF_TG_ENDP)
132#define INCHIDIFF_STEREO (INCHIDIFF_SC_INV | INCHIDIFF_SC_PARITY | INCHIDIFF_SC_EXTRA_UNDF | INCHIDIFF_SC_EXTRA | \
133 INCHIDIFF_SC_MISS_UNDF | INCHIDIFF_SC_MISS | INCHIDIFF_SB_PARITY | INCHIDIFF_SB_EXTRA_UNDF |\
134 INCHIDIFF_SB_EXTRA | INCHIDIFF_SB_MISS_UNDF | INCHIDIFF_SB_MISS)
135
136
137#endif /* _INCHICMP_H_ */
tagtagCompareInchiMsgGroupID
Definition inchicmp.h:95
@ IDGRP_COMP
Definition inchicmp.h:107
@ IDGRP_H
Definition inchicmp.h:98
@ IDGRP_ISO_H
Definition inchicmp.h:103
@ IDGRP_CHARGE
Definition inchicmp.h:101
@ IDGRP_HLAYER
Definition inchicmp.h:106
@ IDGRP_ZERO
Definition inchicmp.h:96
@ IDGRP_CONV_ERR
Definition inchicmp.h:108
@ IDGRP_ISO_AT
Definition inchicmp.h:100
@ IDGRP_ERR
Definition inchicmp.h:97
@ IDGRP_SC
Definition inchicmp.h:104
@ IDGRP_PROTONS
Definition inchicmp.h:102
@ IDGRP_SB
Definition inchicmp.h:105
@ IDGRP_MOB_GRP
Definition inchicmp.h:99
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:46
@ INCHIDIFF_WRONG_TAUT
Definition inchicmp.h:60
@ INCHIDIFF_SB_EXTRA_UNDF
Definition inchicmp.h:82
@ INCHIDIFF_MOB_ISO_H
Definition inchicmp.h:71
@ INCHIDIFF_POSITION_H
Definition inchicmp.h:54
@ INCHIDIFF_SC_INV
Definition inchicmp.h:75
@ INCHIDIFF_COMP_NUMBER
Definition inchicmp.h:87
@ INCHIDIFF_MORE_FH
Definition inchicmp.h:55
@ INCHIDIFF_MOBH_PROTONS
Definition inchicmp.h:74
@ INCHIDIFF_DIFF_TG_ENDP
Definition inchicmp.h:65
@ INCHIDIFF_EXTRA_TG_ENDP
Definition inchicmp.h:63
@ INCHIDIFF_ATOMS
Definition inchicmp.h:50
@ INCHIDIFF_REM_ISO_H
Definition inchicmp.h:70
@ INCHIDIFF_SB_MISS
Definition inchicmp.h:85
@ INCHIDIFF_SB_MISS_UNDF
Definition inchicmp.h:84
@ INCHIDIFF_SINGLE_TG
Definition inchicmp.h:61
@ INCHIDIFF_SB_PARITY
Definition inchicmp.h:81
@ INCHIDIFF_SC_EXTRA
Definition inchicmp.h:78
@ INCHIDIFF_LESS_H
Definition inchicmp.h:58
@ INCHIDIFF_COMP_HLAYER
Definition inchicmp.h:86
@ INCHIDIFF_REM_PROT
Definition inchicmp.h:73
@ INCHIDIFF_CON_TBL
Definition inchicmp.h:53
@ INCHIDIFF_LESS_FH
Definition inchicmp.h:56
@ INCHIDIFF_SC_MISS
Definition inchicmp.h:80
@ INCHIDIFF_NUM_ISO_AT
Definition inchicmp.h:68
@ INCHIDIFF_ISO_AT
Definition inchicmp.h:69
@ INCHIDIFF_NO_TAUT
Definition inchicmp.h:59
@ INCHIDIFF_SC_EXTRA_UNDF
Definition inchicmp.h:77
@ INCHIDIFF_MULTIPLE_TG
Definition inchicmp.h:62
@ INCHIDIFF_ZERO
Definition inchicmp.h:47
@ INCHIDIFF_SC_PARITY
Definition inchicmp.h:76
@ INCHIDIFF_TG
Definition inchicmp.h:67
@ INCHIDIFF_MORE_H
Definition inchicmp.h:57
@ INCHIDIFF_NUM_EL
Definition inchicmp.h:51
@ INCHIDIFF_PROBLEM
Definition inchicmp.h:48
@ INCHIDIFF_CHARGE
Definition inchicmp.h:72
@ INCHIDIFF_MISS_TG_ENDP
Definition inchicmp.h:64
@ INCHIDIFF_SC_MISS_UNDF
Definition inchicmp.h:79
@ INCHIDIFF_NUM_TG
Definition inchicmp.h:66
@ INCHIDIFF_STR2INCHI_ERR
Definition inchicmp.h:88
@ INCHIDIFF_NUM_AT
Definition inchicmp.h:49
@ INCHIDIFF_SB_EXTRA
Definition inchicmp.h:83
@ INCHIDIFF_CON_LEN
Definition inchicmp.h:52
Definition inchicmp.h:118
CMP_INCHI_MSG_GROUP_ID nGroupID
Definition inchicmp.h:119
const char * szGroupName
Definition inchicmp.h:120
Definition inchicmp.h:112
const char * szMsg
Definition inchicmp.h:115
CMP_INCHI_MSG_GROUP_ID nGroupID
Definition inchicmp.h:114
INCHIDIFF nBit
Definition inchicmp.h:113