InChI
 
Loading...
Searching...
No Matches
inpdef.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 _INPDEF_H_
43#define _INPDEF_H_
44
45
46/* input/output format */
47
48
49#include "mode.h"
50#include "ichidrp.h"
51#include "mol_fmt.h"
52
53
54#define CLOSING_STARRED_SRU_IS_A_MUST 1
55#define ALLOW_CLOSING_SRU_VIA_HIGHER_ORDER_BOND 1
56#define ALLOW_CLOSING_SRU_VIA_DIRADICAL 1
57
58#define CLOSING_SRU_NOT_APPLICABLE 0
59#define CLOSING_SRU_RING 1
60#define CLOSING_SRU_HIGHER_ORDER_BOND 2
61#define CLOSING_SRU_DIRADICAL 3
62#define CLOSING_SRU_RING_OPENED 4
63#define CLOSING_SRU_MOVED_BRACKETS 5
64
65#define bDrawingLabelLeftShift endpoint /* for drawing only */
67
68/* inp_ATOM::at_type */
69#define ATT_NONE 0x0000
70#define ATT_ACIDIC_CO 0x0001
71#define ATT_ACIDIC_S 0x0002
72#define ATT_OO 0x0004
73#define ATT_ZOO 0x0008
74#define ATT_NO 0x0010
75#define ATT_N_O 0x0020
76#define ATT_ATOM_N 0x0040
77#define ATT_ATOM_P 0x0080
78#define ATT_OTHER_NEG_O 0x0100
79#define ATT_OTHER_ZO 0x0200 /* -Z=O or =Z=O */
80#define ATT_OH_MINUS 0x0400 /* OH(-), O=O,S,Se,Te */
81#define ATT_O_PLUS 0x0800 /* -OH2(+), =OH(+), -OH(+)-, OH3(+), =O(+)-, etc; O=O,S,Se,Te */
82#define ATT_PROTON 0x1000
83#define ATT_HalAnion 0x2000
84#define ATT_HalAcid 0x4000
85#if ( FIX_NP_MINUS_BUG == 1 )
86#define ATT_NP_MINUS_V23 0x8000 /* =N(-) or =P(-) where = previously was triple */
87#endif
88
89#define AT_FLAG_ISO_H_POINT 0x01 /* may have isotopic H */
90
91#define PERIODIC_NUMBER_H 1
92
93#ifndef NUMH
94#define NUM_ISO_H(AT,N) (AT[N].num_iso_H[0]+AT[N].num_iso_H[1]+AT[N].num_iso_H[2])
95#define NUMH(AT,N) (AT[N].num_H+NUM_ISO_H(AT,N))
96#endif
97
98#define FlagSC_0D 1 /* bUsed0DParity */
99#define FlagSB_0D 2 /* bUsed0DParity */
100
101#define SB_PARITY_FLAG 0x38 /* mask for disconnected metal parity if it is different */
102#define SB_PARITY_SHFT 3 /* number of right shift bits to get disconnected metal parity */
103#define SB_PARITY_MASK 0x07
104#define SB_PARITY_1(X) (X & SB_PARITY_MASK) /* refers to connected structure */
105#define SB_PARITY_2(X) (((X) >> SB_PARITY_SHFT) & SB_PARITY_MASK) /* refers to connected structure */
106
107
108
109typedef struct tagInputAtom
110{
111 char elname[ATOM_EL_LEN]; /* name of chemical element */
112 U_CHAR el_number; /* number of the element in the Periodic Table */
113 AT_NUMB neighbor[MAXVAL]; /* positions (from 0) of the neighbors in the inp_ATOM array*/
114 AT_NUMB orig_at_number; /* original atom number */
115 AT_NUMB orig_compt_at_numb; /* original atom number within the component */
116 /* before terminal H removal */
117 S_CHAR bond_stereo[MAXVAL]; /* 1=Up,4=Either,6=Down; this atom is at the pointing wedge,*/
118 /* negative => on the opposite side; 3=Either double bond */
119 U_CHAR bond_type[MAXVAL]; /* 1..4; 4="aromatic", should be discouraged on input */
120 S_CHAR valence; /* for most chemists, it is coordination number, CN; */
121 /* number of bonds = number of neighbors */
122 S_CHAR chem_bonds_valence; /* for most chemists, it is what usually called valence; */
123 /* sum of bond types (type 4 needs special treatment) */
124 S_CHAR num_H; /* number of implicit hydrogens, including D and T */
125 S_CHAR num_iso_H[NUM_H_ISOTOPES]; /* number of implicit 1H, 2H(D), 3H(T) < 16 */
126 S_CHAR iso_atw_diff; /* =0 => natural isotopic abundances */
127 /* >0 => (mass) - (mass of the most abundant isotope) + 1 */
128 /* <0 => (mass) - (mass of the most abundant isotope) */
129 S_CHAR charge; /* charge */
130 S_CHAR radical; /* RADICAL_SINGLET, RADICAL_DOUBLET, or RADICAL_TRIPLET */
132 S_CHAR cFlags; /* AT_FLAG_ISO_H_POINT */
133 AT_NUMB at_type; /* ATT_NONE, ATT_ACIDIC */
134 AT_NUMB component; /* number of the structure component > 0 */
135 AT_NUMB endpoint; /* id of a tautomeric group */
136 AT_NUMB c_point; /* id of a positive charge group */
137 double x;
138 double y;
139 double z;
140 /* 0D parities (originally were used with CML) */
141 S_CHAR bUsed0DParity; /* bit=1 => stereobond; bit=2 => stereocenter */
142 /* 0D tetrahedral parity */
145 /* 0D bond parities */
146 S_CHAR sb_ord[MAX_NUM_STEREO_BONDS]; /* stereo bond/neighbor ordering number, starts from 0 */
147 /* neighbors on both sides of stereobond have same sign=> trans/T/E, diff. signs => cis/C/Z */
148 S_CHAR sn_ord[MAX_NUM_STEREO_BONDS]; /* ord. num. of the neighbor adjacent to the SB; */
149 /* starts from 0; */
150 /* -1 means removed explicit H */
151 /* neighbors on both sides of stereobond have same parity => trans/T/E/2, diff. parities => cis/C/Z/1 */
153 AT_NUMB sn_orig_at_num[MAX_NUM_STEREO_BONDS]; /* orig. at number of sn_ord[] neighbors */
154
155#if ( FIND_RING_SYSTEMS == 1 )
160
161#if ( FIND_RINS_SYSTEMS_DISTANCES == 1 )
162 AT_NUMB nDistanceFromTerminal; /* terminal atom or ring system has 1, next has 2, etc. */
163#endif
164
165#endif
167
168
169
170/* v. 1.05 extensions: extended input supporting V3000; polymers */
171/* OAD stands for OrigAtData */
172
173/* v. 1.05 Polymer stuff */
174
175/* Polymer representation type */
176#define NO_POLYMER -1
177#define POLYMER_REPRESENTATION_SOURCE_BASED 1
178#define POLYMER_REPRESENTATION_STRUCTURE_BASED 2
179#define POLYMER_REPRESENTATION_MIXED 3
180#define POLYMER_REPRESENTATION_UNRECOGNIZED 4
181
182#define ALLOW_MIXED_SRU_AND_MON 1 /* allow simultaneous presence of source-based and */
183 /* structure-based units in embedding copolymer unit */
184
185#define POLYMER_STY_NON 0
186#define POLYMER_STY_SRU 1 /* structure-based unit or copolymer subunit */
187#define POLYMER_STY_MON 2 /* source-based polymer unit or copolymer subunit */
188#define POLYMER_STY_COP 3 /* copolymer unit embedding >1 subunits */
189 /* (may be SRU, MON, MER, CRO, MOD; others not supported yet) */
190#define POLYMER_STY_MOD 4 /* copolymer subunit only, designates chemical modification of SRU */
191#define POLYMER_STY_CRO 5 /* copolymer subunit only, designates cross-linked version of SRU */
192#define POLYMER_STY_MER 6 /* copolymer subunit only, source-based with no homopolymerize */
193
194#define POLYMER_SST_NON 0
195#define POLYMER_SST_ALT 1
196#define POLYMER_SST_RAN 2
197#define POLYMER_SST_BLK 3
198
199#define POLYMER_CONN_NON 0
200#define POLYMER_CONN_HT 1
201#define POLYMER_CONN_HH 2
202#define POLYMER_CONN_EU 3
203
204
205typedef struct OAD_PolymerUnit
206{
207 int id; /* it is what is called 'Sgroup number' in CTFILE */
208 int type; /* type as by MDL format (STY) */
209 int subtype; /* subtype as by MDL format (SST) */
210 int conn; /* connection scheme as by MDL format (SCN) */
211 int label; /* it is what is called 'unique Sgroup identifier' CTFILE */
212 int na; /* number of atoms in the unit */
213 int nb; /* number of bonds in the unit */
214 int cyclizable; /* =1 if frame shift via CRU 'cyclization' is applicable */
215 int cyclized; /* =1 i CRU alredy was frame_shift' treated */
216 double xbr1[4]; /* bracket ends coordinates (SDI) */
217 double xbr2[4]; /* bracket ends coordinates (SDI) */
218 char smt[80]; /* Sgroup Subscript (SMT) */
220 /* CRU structure is: cap1-[-end_atom1/\/\/\end_atom2-]-cap2 */
221 int cap1;
224 int cap2;
227 int *alist; /* list of atoms in the unit (SAL) */
228 int *blist; /* bonds in the unit as list [atom1, atom2; atom1, atom2,..]*/
229 /* for crossing bonds (S) */
230 int maxbkbonds; /* max (allocd) number of frame_shift involved bonds */
231 int nbkbonds; /* number of bkbonds in CRU main chain */
232 /* bkbonds are [breakable at possible frame shift] backbone */
233 /* bonds in between "left" end_atom1 and "right" end_atom2 */
234 /* ends (they may be only single-order non-intraring bonds) */
235 int **bkbonds; /* list of [breakable] backbone bonds [(a1,a2), (a3,a4),...}*/
237
238
239typedef struct OAD_Polymer
240{
241 OAD_PolymerUnit **units; /* array of pointers to units */
242 int n;
243 int n_pzz; /* number of polymeric Zz atoms */
244 /* paired undefined-nature caps/stars around*/
245 /* CRY's (must be even) */
246 int *pzz; /* polymeric Zz atoms */
248 int frame_shift_scheme; /* frame shift analysis scheme */
249 int treat;
252 int edit_repeats; /* -1 unknown, to be checked */
253 /* 0 no, no edits required */
254 /* 1 yes, edits are necessary */
256
257
258typedef struct OAD_AtProps
259{
260 int erank; /* rank of element; 2 - C, >2 - rank of heteroatom in chain, */
261 /* O > S > Se > Te > N ...., Rule 4 */
262 int ring_erank; /* 0 - not ring or just carbocycle,
263 >2 - rank of senior heteroatom in this cycle */
264 /* according to Rule 2 ( N > O >... ) */
266 int ring_size; /* 0 or ring system size */
267 /* that is: */
268 /* ring_erank != 0 heterocycle of ring_size */
269 /* ring_erank==0 && ring_size>0 carbocycle of ring_size */
271
272/* Extended input supports v. 1.05 extensions: V3000; polymers */
273typedef struct OAD_V3000
274{
277 int *atom_index_orig; /* index as supplied for atoms */
278 int *atom_index_fin; /* = index or -1 for star atom */
279 int n_sgroups; /* currently, we do not use this. */
280 int n_3d_constraints; /* currently, we do not use this. */
285 /* haptic_bonds[i] is pointer to int* which contains: */
286 /* bond_type, non-star atom number, nendpts, */
287 /* then endpts themselves */
288 /* Enhanced stereo */
290 int **lists_steabs; /* steabs[k][0] - not used */
291 /* steabs[k][1] - number of members in collection */
292 /* steabs[k][2..] - member atom numbers */
294 int **lists_sterel; /* sterel[k][0] - n from "STERELn" tag */
295 /* sterel[k][1] - number of members in collection */
296 /* sterel[k][2..] - member atom numbers */
298 int **lists_sterac; /* sterac[k][0] - n from "STERACn" tag */
299 /* sterac[k][1] - number of members in collection */
300 /* sterac[k][0] - number from "STERACn" tag */
302
303
304typedef struct tagOrigAtom
305{
306 /* Initially filled out by CreateOrigInpDataFromMolfile() */
307 /* may be changed by disconnecting salts and disconnecting metals */
312 /* may be changed by disconnecting salts and disconnecting metals */
313 int num_components; /* set by MarkDisconnectedComponents and disconn. metals*/
314 int bDisconnectSalts; /* whether salt disconnection is possible */
315 int bDisconnectCoord; /* 0 if no disconnection needed */
316 /* else (NumImplicitH to disconnect)+1 */
317#if ( bRELEASE_VERSION == 0 )
318 int bExtract;
319#endif
320 AT_NUMB *nCurAtLen; /* has max_num_components elements */
321 AT_NUMB *nOldCompNumber; /* 0 or component number in previous numbering */
322 int nNumEquSets; /* number of found component equivalence sets */
323 AT_NUMB *nEquLabels; /* num_inp_atoms elements, value>0 marks atoms */
324 /* in the set #value */
325 AT_NUMB *nSortedOrder; /* num_components elements, values = 1..num_components; */
326 /* only if num_components > 1 */
330 /* v. 1.05 extensions */
334 int n_zy; /* number of non-polymeric pseudoatoms (Zy) */
335
337
338
339typedef struct tagOriginalStruct
340{
342 char *szAtoms;
343 char *szBonds;
344 char *szCoord;
345 /* v. 1.05 extensions */
346 OAD_Polymer *polymer; /* uses pointer copy from orig_inp_data, do not free after use! */
347 OAD_V3000 *v3000; /* uses pointer copy from orig_inp_data, do not free after use! */
348 int n_zy; /* number of non-polymeric pseudoatoms (Zy) */
349
351
352
353
373
374
375
376#define INF_STEREO_ABS 0x0001
377#define INF_STEREO_REL 0x0002
378#define INF_STEREO_RAC 0x0004
379#define INF_STEREO_NORM 0x0008
380#define INF_STEREO_INV 0x0010
381#define INF_STEREO 0x0020
382#define INF_STEREO_ABS_REL_RAC (INF_STEREO_ABS | INF_STEREO_REL | INF_STEREO_RAC)
383#define INF_STEREO_NORM_INV (INF_STEREO_NORM | INF_STEREO_INV)
384
385#define MAX_LEN_REMOVED_PROTONS 128
386
387
388
402
403
404
405typedef struct tagInputAtomData
406{
408 inp_ATOM *at_fixed_bonds; /* tautomeric case, added or removed H */
420 /* isotopic composition of removed protons, not included in num_iso_H[] */
422 /* isotopic H on tautomerIC atoms and those in nIsotopicEndpointAtomNumber */
427
429
430
431
439
440
441
443{
450 int bDeleted; /* unused */
455 /* isotopic composition of removed protons, not included in num_iso_H[] */
457 /* isotopic H on tautomeric atoms and those */
458 /* in nIsotopicEndpointAtomNumber */
462
463/*
464typedef COMP_ATOM_DATA COMP_ATOM_DATA3[TAUT_NUM+1];
465*/
466
467#define ADD_LEN_STRUCT_FPTRS 100 /* allocation increments */
468
469typedef long INCHI_FPTR;
470
471
472
473typedef struct tagStructFptrs
474{
475 INCHI_FPTR *fptr; /* input: fptr[cur_fptr] =file ptr to the struct to read */
476 /* output: fptr[cur_fptr+1]=file ptr to the next struct or EOF */
477 int len_fptr; /* allocated length of fptr */
478 int cur_fptr; /* input: k-1 to read the kth struct, k = 1, 2, 3,...; */
479 /* left unchanged; struct number := cur_fptr+1 */
480 int max_fptr; /* length of the filled out portion of fptr */
482
483/* forward declaration */
484struct tagCANON_GLOBALS;
485
486#ifndef __ICHITIME_H__
487struct tagInchiTime;
488struct tagINCHI_CLOCK;
489int bInchiTimeIsOver( struct tagINCHI_CLOCK *ic,
490 struct tagInchiTime *TickEnd );
491#endif
492
493
494#define FLAG_INP_AT_CHIRAL 1
495#define FLAG_INP_AT_NONCHIRAL 2
496#define FLAG_SET_INP_AT_CHIRAL 4
497#define FLAG_SET_INP_AT_NONCHIRAL 8
498#define FLAG_SET_INP_LARGE_MOLS 16
499
500#ifndef COMPILE_ALL_CPP
501#ifdef __cplusplus
502extern "C" {
503#endif
504#endif
505
506
508 ORIG_ATOM_DATA *orig_at_data,
509 int bMergeAllInputStructures,
510 int bGetOrigCoord,
511 int bDoNotAddH,
512 int treat_polymers,
513 int treat_NPZz,
514 const char *pSdfLabel,
515 char *pSdfValue,
516 unsigned long *lSdfId,
517 long *lMolfileNumber,
518 INCHI_MODE *pInpAtomFlags,
519 int *err,
520 char *pStrErr,
521 int bNoWarnings );
523 ORIG_ATOM_DATA *orig_at_data,
524 int bMergeAllInputStructures,
525 int bGetOrigCoord,
526 int bDoNotAddH,
527 int vABParityUnknown,
528 INPUT_TYPE nInputType,
529 char *pSdfLabel,
530 char *pSdfValue,
531 unsigned long *lSdfId,
532 INCHI_MODE *pInpAtomFlags,
533 int *err,
534 char *pStrErr );
536 int bProcessOldCompNumbers );
537int DisconnectSalts( ORIG_ATOM_DATA *orig_inp_data,
538 int bDisconnect );
539int DisconnectMetals( ORIG_ATOM_DATA *orig_inp_data,
540 int bCheckMetalValence,
541 INCHI_MODE *bTautFlagsDone );
542int bMayDisconnectMetals( ORIG_ATOM_DATA *orig_inp_data,
543 int bCheckMetalValence,
544 INCHI_MODE *bTautFlagsDone );
545int bHasMetalAtom( ORIG_ATOM_DATA *orig_inp_data );
546int FixAdjacentRadicals( int num_inp_atoms,
547 inp_ATOM *at ); /* FIX_ADJ_RAD == 1 */
548int fix_odd_things( int num_atoms,
549 inp_ATOM *at,
550 int bFixBug,
551 int bFixNonUniformDraw );
552int post_fix_odd_things( int num_atoms,
553 inp_ATOM *at );
554int remove_ion_pairs( int num_atoms,
555 inp_ATOM *at );
557 int num_atoms );
558
559int UnMarkRingSystemsInp( inp_ATOM *at, int num_atoms );
560
561int OrigAtData_WriteToSDfile( const ORIG_ATOM_DATA *inp_at_data, INCHI_IOSTREAM *fcb,
562 const char *name, const char *comment,
563 int bChiralFlag, int bAtomsDT,
564 const char *szLabel, const char *szValue );
565void FreeInpAtom( inp_ATOM **at );
567void FreeOrigAtData( ORIG_ATOM_DATA *orig_at_data );
568void FreeExtOrigAtData( OAD_Polymer *pd, OAD_V3000 *v3k );
569void FreeInpAtomData( INP_ATOM_DATA *inp_at_data );
570void FreeCompAtomData( COMP_ATOM_DATA *inp_at_data );
571void FreeInfoAtomData( INF_ATOM_DATA *inf_at_data );
572
573
574/*
575 ORIG_ATOM_DATA
576 functions
577*/
578
579
580/* OAD_Edit */
593
594
595
596
597#if ( RING2CHAIN == 1 )
598int Ring2Chain( struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data );
599#endif
600
601#if ( UNDERIVATIZE == 1 )
603 struct tagCANON_GLOBALS *pCG,
604 ORIG_ATOM_DATA *orig_inp_data,
605 int bOutputSdf,
606 int bOutputReport,
607 char *pSdfValue );
608
610 INP_ATOM_DATA *curr_InpAtomData,
611 int num_components,
612 int *errcode );
613
614#endif
615
616
617/* OAD misc. */
618
619
621 int treat_polymers,
622 int bNPZz,
623 char *pStrErr,
624 int bNoWarnings );
625
626
627/* OAD_Polymer */
628
629
631 int treat_polymers,
632 int use_zz,
633 int *err,
634 char *pStrErr );
637 int use_zz,
638 char *pStrErr,
639 int bNoWarnings );
641 inp_ATOM *at,
642 int nat,
643 int *num_inp_bonds,
644 int *num_ring_sys,
645 int *size_ring_sys,
646 int start );
648 inp_ATOM *at,
649 int nat,
650 int *num_inp_bonds,
651 OAD_AtProps *aprops,
652 int *cano_nums );
654 int *b2,
655 OAD_AtProps *aprops );
657 int atom2,
658 OAD_AtProps *aprops );
659int OAD_Polymer_IsFirstAtomRankLower( int atom1, int atom2, OAD_AtProps *aprops );
662 OAD_AtProps *aprops, int *senior_bond );
663void OAD_Polymer_FindBackbones( ORIG_ATOM_DATA *where_to_look,
664 COMP_ATOM_DATA *composite_norm_data,
665 int *err, char *pStrErr );
666int OAD_Polymer_PrepareWorkingSet( OAD_Polymer *p, int *cano_nums, int *compnt_nums,
667 OAD_PolymerUnit **units2, int *unum );
671 int nat, int *num_inp_bonds );
673 char *sinchi_noedits,
674 char *saux_noedits,
675 char *sinchi,
676 char *saux,
679 char *sinchi,
680 char *saux,
682
683/* OAD_PolymerUnit */
685 int maxbonds,
686 int id,
687 int label,
688 int type,
689 int subtype,
690 int conn,
691 char *smt,
692 int na,
693 INT_ARRAY *alist,
694 int nb,
695 INT_ARRAY *blist,
696 int nbkbonds,
697 int **bkbonds );
702 ORIG_ATOM_DATA *orig_at_data,
703 int *end1, int *cap1, int *cap1_is_undef,
704 int *end2, int *cap2, int *cap2_is_undef,
705 int *err, char *pStrErr);
707 ORIG_ATOM_DATA *orig_at_data,
708 int *err,
709 char *pStrErr );
711 ORIG_ATOM_DATA *orig_at_data,
712 int *err,
713 char *pStrErr );
715 ORIG_ATOM_DATA *orig_at_data,
716 int *err,
717 char *pStrErr );
718
720 int start_atom,
721 int nforbidden_bonds,
722 int *forbidden_bonds,
723 int *n_reachable,
724 int *reachable,
725 int *err,
726 char *pStrErr);
727
729 int na,
730 int *alist,
731 int end_atom1,
732 int end_atom2,
733 int *nbkatoms,
734 int *bkatoms,
735 int *err,
736 char *pStrErr);
737
739 int na,
740 int *alist,
741 int end_atom1,
742 int end_atom2,
743 int *nbkbonds,
744 int **bkbonds,
745 int *err,
746 char *pStrErr);
748 ORIG_ATOM_DATA *orig_at_data,
749 int *err,
750 char *pStrErr );
752 ORIG_ATOM_DATA *orig_at_data,
753 COMP_ATOM_DATA *composite_norm_data,
754 int *err,
755 char *pStrErr );
757 OAD_AtProps *aprops,
758 int *bnum );
759
761 inp_ATOM *at,
762 OAD_AtProps *aprops,
763 int nat,
764 int *num_inp_bonds );
765
767 OAD_PolymerUnit* u2 );
769 OAD_PolymerUnit* u2 );
771 int n_stars,
772 int *stars );
774 inp_ATOM *at );
775
776
778 int num_at );
779inf_ATOM *CreateInfAtom( int num_atoms );
780inp_ATOM *CreateInpAtom( int num_atoms );
782 int num_atoms,
783 int num_components );
785 int num_atoms,
786 int num_components );
788 const INF_ATOM_DATA *inf_at_data_from );
789int CreateInpAtomData( INP_ATOM_DATA *inp_at_data,
790 int num_atoms,
791 int create_at_fixed_bonds );
792int CreateCompAtomData( COMP_ATOM_DATA *inp_at_data,
793 int num_atoms,
794 int num_components,
795 int bIntermediateTaut );
796
797
798#ifndef COMPILE_ANSI_ONLY
799int DisplayInputStructure( char *szOutputString,
800 inp_ATOM *at,
801 INF_ATOM_DATA *inf_at_data,
802 int num_at,
803 DRAW_PARMS *dp );
804#endif
805
806
807void PrintFileName( const char *fmt,
808 FILE *out_file,
809 const char *szFname );
810
811void MySleep( unsigned long ms );
812
814 int num_atoms,
815 int bDisconnected );
816
817#ifndef COMPILE_ALL_CPP
818#ifdef __cplusplus
819}
820#endif
821#endif
822
823#endif /* _INPDEF_H_ */
#define ATOM_EL_LEN
Definition ichicant.h:97
#define MAXVAL
Definition ichicant.h:95
enum tagInputType INPUT_TYPE
unsigned short AT_NUMB
Definition ichisize.h:45
signed short NUM_H
Definition ichisize.h:49
unsigned long INCHI_MODE
Definition ichisize.h:60
char MOL_COORD[LEN_COORD *NUM_COORD+NUM_COORD - 1]
Definition ichisize.h:64
signed char S_CHAR
Definition inchi_api.h:113
#define NUM_H_ISOTOPES
Definition inchi_api.h:107
unsigned char U_CHAR
Definition inchi_api.h:114
#define INCHI_NUM
Definition inchi_api.h:1179
#define MAX_NUM_STEREO_BONDS
Definition inchi_api.h:1176
signed short S_SHORT
Definition inchi_api.h:119
#define MAX_NUM_STEREO_ATOM_NEIGH
Definition inchi_api.h:1173
#define ATOM_INFO_LEN
Definition incomdef.h:57
#define MAX_STEREO_BONDS
Definition incomdef.h:59
int OAD_PolymerUnit_SetReopeningDetails(OAD_PolymerUnit *u, inp_ATOM *at)
Definition runichi3.c:3981
int bFoundFeature(inp_ATOM *at, int num_atoms)
int OAD_Edit_Underivatize(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data, int bOutputSdf, int bOutputReport, char *pSdfValue)
Definition ichinorm.c:5936
int CreateOrigInpDataFromMolfile(INCHI_IOSTREAM *inp_file, ORIG_ATOM_DATA *orig_at_data, int bMergeAllInputStructures, int bGetOrigCoord, int bDoNotAddH, int treat_polymers, int treat_NPZz, const char *pSdfLabel, char *pSdfValue, unsigned long *lSdfId, long *lMolfileNumber, INCHI_MODE *pInpAtomFlags, int *err, char *pStrErr, int bNoWarnings)
Definition mol2atom.c:111
OAD_PolymerUnit * OAD_PolymerUnit_New(int maxatoms, int maxbonds, int id, int label, int type, int subtype, int conn, char *smt, int na, INT_ARRAY *alist, int nb, INT_ARRAY *blist, int nbkbonds, int **bkbonds)
Definition runichi3.c:1143
struct tagAtomParmsForDrawing inf_ATOM
void FreeInfoAtomData(INF_ATOM_DATA *inf_at_data)
void OAD_Polymer_SmartReopenCyclizedUnits(OAD_Polymer *p, inp_ATOM *at, int nat, int *num_inp_bonds)
Definition runichi3.c:3857
int FixAdjacentRadicals(int num_inp_atoms, inp_ATOM *at)
int OAD_Polymer_CyclizeCloseableUnits(ORIG_ATOM_DATA *orig_at_data, int use_zz, char *pStrErr, int bNoWarnings)
Definition runichi3.c:1959
struct tagOAD_StructureEdits OAD_StructureEdits
void OAD_PolymerUnit_SortBackboneBonds(OAD_PolymerUnit *u, OAD_AtProps *aprops, int *bnum)
Definition runichi3.c:4071
void OAD_ValidateAndSortOutPseudoElementAtoms(ORIG_ATOM_DATA *orig_at_data, int treat_polymers, int use_zz, int *err, char *pStrErr)
Definition runichi3.c:4370
int OAD_CollectReachableAtoms(ORIG_ATOM_DATA *orig_at_data, int start_atom, int nforbidden_bonds, int *forbidden_bonds, int *n_reachable, int *reachable, int *err, char *pStrErr)
Definition runichi3.c:2998
void FreeInpAtomData(INP_ATOM_DATA *inp_at_data)
Definition mol2atom.c:1075
struct tagInputAtom inp_ATOM
struct tagInfoAtomData INF_ATOM_DATA
struct tagOriginalStruct ORIG_STRUCT
int OAD_Polymer_CompareRanksOfTwoAtoms(int atom1, int atom2, OAD_AtProps *aprops)
Definition runichi3.c:4183
int post_fix_odd_things(int num_atoms, inp_ATOM *at)
Definition strutil.c:915
INP_ATOM_DATA INP_ATOM_DATA2[TAUT_NUM]
Definition inpdef.h:428
inp_ATOM * CreateInpAtom(int num_atoms)
Definition mol2atom.c:1054
int AllocateInfoAtomData(INF_ATOM_DATA *inf_at_data, int num_atoms, int num_components)
int DuplicateInfoAtomData(INF_ATOM_DATA *inf_at_data_to, const INF_ATOM_DATA *inf_at_data_from)
int CreateInfoAtomData(INF_ATOM_DATA *inf_at_data, int num_atoms, int num_components)
int DisconnectMetals(ORIG_ATOM_DATA *orig_inp_data, int bCheckMetalValence, INCHI_MODE *bTautFlagsDone)
Definition strutil.c:2858
int fix_odd_things(int num_atoms, inp_ATOM *at, int bFixBug, int bFixNonUniformDraw)
Definition strutil.c:603
void OAD_StructureEdits_Clear(OAD_StructureEdits *ed)
Definition runichi2.c:1765
int Ring2Chain(struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data)
Definition ichinorm.c:7364
void OAD_Polymer_Free(OAD_Polymer *p)
Definition runichi3.c:2051
void OAD_Polymer_DebugTrace(OAD_Polymer *p)
Definition runichi3.c:3736
void FreeInfAtom(inf_ATOM **at)
void OAD_Polymer_SetAtProps(OAD_Polymer *pd, inp_ATOM *at, int nat, int *num_inp_bonds, OAD_AtProps *aprops, int *cano_nums)
Definition runichi3.c:3291
void OAD_PolymerUnit_DelistIntraRingBackboneBonds(OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
Definition runichi3.c:3147
void OAD_PolymerUnit_SortBackboneBondsAndSetSeniors(OAD_PolymerUnit *u, inp_ATOM *at, OAD_AtProps *aprops, int *senior_bond)
Definition runichi3.c:4030
int InchiToOrigAtom(INCHI_IOSTREAM *infile, ORIG_ATOM_DATA *orig_at_data, int bMergeAllInputStructures, int bGetOrigCoord, int bDoNotAddH, int vABParityUnknown, INPUT_TYPE nInputType, char *pSdfLabel, char *pSdfValue, unsigned long *lSdfId, INCHI_MODE *pInpAtomFlags, int *err, char *pStrErr)
Definition runichi2.c:1067
void OAD_StructureEdits_DebugPrint(OAD_StructureEdits *ed)
Definition runichi2.c:1803
int OAD_Polymer_IsFirstAtomRankLower(int atom1, int atom2, OAD_AtProps *aprops)
Definition runichi3.c:4343
int OAD_Polymer_PrepareFrameShiftEdits(ORIG_ATOM_DATA *orig_at_data, char *sinchi, char *saux, OAD_StructureEdits *ed)
Definition runichi2.c:2518
int OAD_ValidatePolymerAndPseudoElementData(ORIG_ATOM_DATA *orig_at_data, int treat_polymers, int bNPZz, char *pStrErr, int bNoWarnings)
Definition runichi3.c:1497
long INCHI_FPTR
Definition inpdef.h:469
int OAD_PolymerUnit_CompareAtomLists(OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
Definition runichi3.c:1381
int DisconnectSalts(ORIG_ATOM_DATA *orig_inp_data, int bDisconnect)
Definition strutil.c:2661
S_SHORT ST_CAP_FLOW
Definition inpdef.h:66
int MarkDisconnectedComponents(ORIG_ATOM_DATA *orig_at_data, int bProcessOldCompNumbers)
Definition strutil.c:4270
struct tagStructFptrs STRUCT_FPTRS
int OAD_PolymerUnit_OrderBondAtomsAndBondsThemselves(OAD_PolymerUnit *u, int n_stars, int *stars)
Definition runichi3.c:1418
int OAD_StructureEdits_Init(OAD_StructureEdits *ed)
Definition runichi2.c:1731
int OAD_Polymer_PrepareWorkingSet(OAD_Polymer *p, int *cano_nums, int *compnt_nums, OAD_PolymerUnit **units2, int *unum)
Definition runichi3.c:2322
int OAD_Polymer_GetRepresentation(OAD_Polymer *p)
Definition runichi3.c:3767
#define MAX_LEN_REMOVED_PROTONS
Definition inpdef.h:385
int UnMarkRingSystemsInp(inp_ATOM *at, int num_atoms)
Definition runichi3.c:1941
int OAD_PolymerUnit_CompareAtomListsMod(OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
Definition runichi3.c:1358
int FixUnkn0DStereoBonds(inp_ATOM *at, int num_at)
Definition ichister.c:2006
OAD_PolymerUnit * OAD_PolymerUnit_CreateCopy(OAD_PolymerUnit *u)
Definition runichi3.c:1241
struct tagNormCanonFlags NORM_CANON_FLAGS
void OAD_PolymerUnit_DelistHighOrderBackboneBonds(OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, COMP_ATOM_DATA *composite_norm_data, int *err, char *pStrErr)
Definition runichi3.c:3488
void OAD_PolymerUnit_DebugTrace(OAD_PolymerUnit *unit)
Definition runichi3.c:3621
int bMayDisconnectMetals(ORIG_ATOM_DATA *orig_inp_data, int bCheckMetalValence, INCHI_MODE *bTautFlagsDone)
Definition strutil.c:2755
void FreeCompAtomData(COMP_ATOM_DATA *inp_at_data)
Definition mol2atom.c:1109
int OAD_Polymer_FindRingSystems(OAD_Polymer *pd, inp_ATOM *at, int nat, int *num_inp_bonds, int *num_ring_sys, int *size_ring_sys, int start)
Definition runichi3.c:3215
void OAD_PolymerUnit_ReopenCyclized(OAD_PolymerUnit *u, inp_ATOM *at, OAD_AtProps *aprops, int nat, int *num_inp_bonds)
Definition runichi3.c:3927
int CreateCompAtomData(COMP_ATOM_DATA *inp_at_data, int num_atoms, int num_components, int bIntermediateTaut)
Definition mol2atom.c:1125
struct tagCompositeAtomData COMP_ATOM_DATA
int OAD_Polymer_PrepareFoldCRUEdits(ORIG_ATOM_DATA *orig_at_data, char *sinchi_noedits, char *saux_noedits, char *sinchi, char *saux, OAD_StructureEdits *ed)
Definition runichi2.c:1834
void OAD_PolymerUnit_SetEndsAndCaps(OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
Definition runichi3.c:2246
void OAD_CollectBackboneBonds(ORIG_ATOM_DATA *at_data, int na, int *alist, int end_atom1, int end_atom2, int *nbkbonds, int **bkbonds, int *err, char *pStrErr)
Definition runichi3.c:3088
void OAD_PolymerUnit_PrepareToFrameShift(OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
int bInchiTimeIsOver(struct tagINCHI_CLOCK *ic, struct tagInchiTime *TickEnd)
Definition ichicano.c:257
int ReconcileAllCmlBondParities(inp_ATOM *at, int num_atoms, int bDisconnected)
Definition ichister.c:4654
void OAD_CollectBackboneAtoms(ORIG_ATOM_DATA *at_data, int na, int *alist, int end_atom1, int end_atom2, int *nbkatoms, int *bkatoms, int *err, char *pStrErr)
Definition runichi3.c:2926
int bHasMetalAtom(ORIG_ATOM_DATA *orig_inp_data)
struct tagInputAtomData INP_ATOM_DATA
void OAD_PolymerUnit_FindEndsAndCaps(OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *end1, int *cap1, int *cap1_is_undef, int *end2, int *cap2, int *cap2_is_undef, int *err, char *pStrErr)
Definition runichi3.c:2146
void PrintFileName(const char *fmt, FILE *out_file, const char *szFname)
Definition strutil.c:5526
int OAD_PolymerUnit_HasMetal(OAD_PolymerUnit *u, inp_ATOM *at)
Definition runichi3.c:2035
int CreateInpAtomData(INP_ATOM_DATA *inp_at_data, int num_atoms, int create_at_fixed_bonds)
Definition mol2atom.c:1089
void OAD_Edit_MergeComponentsAndRecreateOAD(ORIG_ATOM_DATA *orig_OrigAtomData, INP_ATOM_DATA *curr_InpAtomData, int num_components, int *errcode)
Definition ichinorm.c:7565
void OAD_Polymer_FindBackbones(ORIG_ATOM_DATA *where_to_look, COMP_ATOM_DATA *composite_norm_data, int *err, char *pStrErr)
Definition runichi3.c:2852
void FreeOrigAtData(ORIG_ATOM_DATA *orig_at_data)
Definition mol2atom.c:1254
struct tagOrigAtom ORIG_ATOM_DATA
int remove_ion_pairs(int num_atoms, inp_ATOM *at)
Definition strutil.c:1042
void FreeExtOrigAtData(OAD_Polymer *pd, OAD_V3000 *v3k)
Definition mol2atom.c:1300
inf_ATOM * CreateInfAtom(int num_atoms)
void MySleep(unsigned long ms)
int OAD_Polymer_CompareBackboneBondsSeniority(int *b1, int *b2, OAD_AtProps *aprops)
Definition runichi3.c:4102
void OAD_PolymerUnit_UnlinkCapsAndConnectEndAtoms(OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
Definition runichi3.c:2081
void OAD_PolymerUnit_Free(OAD_PolymerUnit *unit)
Definition runichi3.c:1323
void FreeInpAtom(inp_ATOM **at)
Definition mol2atom.c:1062
int OrigAtData_WriteToSDfile(const ORIG_ATOM_DATA *inp_at_data, INCHI_IOSTREAM *fcb, const char *name, const char *comment, int bChiralFlag, int bAtomsDT, const char *szLabel, const char *szValue)
Definition mol_fmt4.c:782
#define TAUT_NUM
Definition mode.h:593
Definition inpdef.h:259
int ring_num
Definition inpdef.h:265
int erank
Definition inpdef.h:260
int ring_size
Definition inpdef.h:266
int ring_erank
Definition inpdef.h:262
Definition inpdef.h:206
int nbkbonds
Definition inpdef.h:231
int conn
Definition inpdef.h:210
int label
Definition inpdef.h:211
double xbr2[4]
Definition inpdef.h:217
int representation
Definition inpdef.h:219
int cap2
Definition inpdef.h:224
int * blist
Definition inpdef.h:228
int * alist
Definition inpdef.h:227
int id
Definition inpdef.h:207
int cap1
Definition inpdef.h:221
int na
Definition inpdef.h:212
char smt[80]
Definition inpdef.h:218
int cap1_is_undef
Definition inpdef.h:225
int end_atom1
Definition inpdef.h:222
int nb
Definition inpdef.h:213
int cyclized
Definition inpdef.h:215
int end_atom2
Definition inpdef.h:223
int subtype
Definition inpdef.h:209
int cyclizable
Definition inpdef.h:214
int ** bkbonds
Definition inpdef.h:235
int maxbkbonds
Definition inpdef.h:230
int type
Definition inpdef.h:208
double xbr1[4]
Definition inpdef.h:216
int cap2_is_undef
Definition inpdef.h:226
Definition inpdef.h:240
int edit_repeats
Definition inpdef.h:252
int * pzz
Definition inpdef.h:246
int is_in_reconn
Definition inpdef.h:251
int n_pzz
Definition inpdef.h:243
int representation
Definition inpdef.h:250
int n
Definition inpdef.h:242
int really_do_frame_shift
Definition inpdef.h:247
int frame_shift_scheme
Definition inpdef.h:248
OAD_PolymerUnit ** units
Definition inpdef.h:241
int treat
Definition inpdef.h:249
Definition inpdef.h:274
int n_non_star_atoms
Definition inpdef.h:275
int n_sterel
Definition inpdef.h:293
int * atom_index_orig
Definition inpdef.h:277
int n_steabs
Definition inpdef.h:289
int * atom_index_fin
Definition inpdef.h:278
int n_non_haptic_bonds
Definition inpdef.h:282
int n_sgroups
Definition inpdef.h:279
int ** lists_sterac
Definition inpdef.h:298
int ** lists_haptic_bonds
Definition inpdef.h:284
int ** lists_steabs
Definition inpdef.h:290
int n_star_atoms
Definition inpdef.h:276
int ** lists_sterel
Definition inpdef.h:294
int n_collections
Definition inpdef.h:281
int n_haptic_bonds
Definition inpdef.h:283
int n_sterac
Definition inpdef.h:297
int n_3d_constraints
Definition inpdef.h:280
Definition inpdef.h:355
S_CHAR cStereoBondWarning[MAX_STEREO_BONDS]
Definition inpdef.h:370
AT_NUMB nCanonNbr
Definition inpdef.h:359
AT_NUMB nTautGroupCanonNbr
Definition inpdef.h:361
S_CHAR cFlags
Definition inpdef.h:363
char at_string[ATOM_INFO_LEN]
Definition inpdef.h:356
int DrawingLabelLeftShift
Definition inpdef.h:357
S_CHAR cStereoBondParity[MAX_STEREO_BONDS]
Definition inpdef.h:369
AT_NUMB nCanonEquNbr
Definition inpdef.h:360
S_CHAR cStereoCenterParity
Definition inpdef.h:368
S_CHAR cHighlightTheAtom
Definition inpdef.h:367
AT_NUMB nTautGroupEquNbr
Definition inpdef.h:362
int DrawingLabelLength
Definition inpdef.h:358
S_CHAR cStereoBondNumber[MAX_STEREO_BONDS]
Definition inpdef.h:371
Definition ichicant.h:338
Definition inpdef.h:443
AT_NUMB * nOffsetAtAndH
Definition inpdef.h:459
int bHasIsotopicLayer
Definition inpdef.h:451
int bExists
Definition inpdef.h:449
int num_isotopic
Definition inpdef.h:448
int num_at
Definition inpdef.h:445
int num_removed_H
Definition inpdef.h:446
int num_components
Definition inpdef.h:460
int nNumRemovedProtons
Definition inpdef.h:453
inp_ATOM * at
Definition inpdef.h:444
int bDeleted
Definition inpdef.h:450
NUM_H nNumRemovedProtonsIsotopic[NUM_H_ISOTOPES]
Definition inpdef.h:454
int num_bonds
Definition inpdef.h:447
int bTautomeric
Definition inpdef.h:452
NUM_H num_iso_H[NUM_H_ISOTOPES]
Definition inpdef.h:456
Definition ichidrp.h:78
Definition ichitime.h:85
INT_ARRAY - Dynamically growing array of int.
Definition mol_fmt.h:207
Definition ichitime.h:69
Definition inpdef.h:390
AT_NUMB num_components
Definition inpdef.h:394
NUM_H num_iso_H[NUM_H_ISOTOPES]
Definition inpdef.h:399
AT_NUMB * pStereoFlags
Definition inpdef.h:395
int num_at
Definition inpdef.h:392
char szRemovedProtons[MAX_LEN_REMOVED_PROTONS]
Definition inpdef.h:400
int num_removed_iso_H
Definition inpdef.h:398
AT_NUMB StereoFlags
Definition inpdef.h:393
int nNumRemovedProtons
Definition inpdef.h:397
inf_ATOM * at
Definition inpdef.h:391
Definition inpdef.h:406
inp_ATOM * at_fixed_bonds
Definition inpdef.h:408
INCHI_MODE bTautFlagsDone
Definition inpdef.h:424
int num_removed_H
Definition inpdef.h:410
NUM_H num_iso_H[NUM_H_ISOTOPES]
Definition inpdef.h:421
INCHI_MODE bNormalizationFlags
Definition inpdef.h:425
int num_isotopic
Definition inpdef.h:412
inp_ATOM * at
Definition inpdef.h:407
int bHasIsotopicLayer
Definition inpdef.h:415
int bTautPreprocessed
Definition inpdef.h:417
int num_bonds
Definition inpdef.h:411
int bTautomeric
Definition inpdef.h:416
int nNumRemovedProtons
Definition inpdef.h:418
NUM_H nNumRemovedProtonsIsotopic[NUM_H_ISOTOPES]
Definition inpdef.h:419
INCHI_MODE bTautFlags
Definition inpdef.h:423
int bDeleted
Definition inpdef.h:414
int bExists
Definition inpdef.h:413
int num_at
Definition inpdef.h:409
Definition inpdef.h:110
S_CHAR bUsed0DParity
Definition inpdef.h:141
AT_NUMB orig_compt_at_numb
Definition inpdef.h:115
AT_NUMB nNumAtInRingSystem
Definition inpdef.h:158
S_CHAR sb_ord[MAX_NUM_STEREO_BONDS]
Definition inpdef.h:146
AT_NUMB p_orig_at_num[MAX_NUM_STEREO_ATOM_NEIGH]
Definition inpdef.h:144
S_CHAR radical
Definition inpdef.h:130
S_CHAR chem_bonds_valence
Definition inpdef.h:122
S_CHAR num_iso_H[NUM_H_ISOTOPES]
Definition inpdef.h:125
double z
Definition inpdef.h:139
AT_NUMB orig_at_number
Definition inpdef.h:114
AT_NUMB component
Definition inpdef.h:134
double y
Definition inpdef.h:138
S_CHAR bond_stereo[MAXVAL]
Definition inpdef.h:117
char elname[ATOM_EL_LEN]
Definition inpdef.h:111
S_CHAR bAmbiguousStereo
Definition inpdef.h:131
AT_NUMB nRingSystem
Definition inpdef.h:157
AT_NUMB at_type
Definition inpdef.h:133
AT_NUMB neighbor[MAXVAL]
Definition inpdef.h:113
S_CHAR bCutVertex
Definition inpdef.h:156
S_CHAR sb_parity[MAX_NUM_STEREO_BONDS]
Definition inpdef.h:152
S_CHAR valence
Definition inpdef.h:120
S_CHAR num_H
Definition inpdef.h:124
AT_NUMB sn_orig_at_num[MAX_NUM_STEREO_BONDS]
Definition inpdef.h:153
double x
Definition inpdef.h:137
S_CHAR sn_ord[MAX_NUM_STEREO_BONDS]
Definition inpdef.h:148
S_CHAR cFlags
Definition inpdef.h:132
AT_NUMB c_point
Definition inpdef.h:136
AT_NUMB nBlockSystem
Definition inpdef.h:159
AT_NUMB endpoint
Definition inpdef.h:135
U_CHAR el_number
Definition inpdef.h:112
S_CHAR p_parity
Definition inpdef.h:143
S_CHAR charge
Definition inpdef.h:129
S_CHAR iso_atw_diff
Definition inpdef.h:126
U_CHAR bond_type[MAXVAL]
Definition inpdef.h:119
Definition inpdef.h:433
INCHI_MODE bNormalizationFlags[INCHI_NUM][TAUT_NUM]
Definition inpdef.h:436
int nCanonFlags[INCHI_NUM][TAUT_NUM]
Definition inpdef.h:437
INCHI_MODE bTautFlags[INCHI_NUM][TAUT_NUM]
Definition inpdef.h:434
INCHI_MODE bTautFlagsDone[INCHI_NUM][TAUT_NUM]
Definition inpdef.h:435
Definition inpdef.h:582
INT_ARRAY * new_bond
Definition inpdef.h:585
int del_side_chains
Definition inpdef.h:588
INT_ARRAY * del_atom
Definition inpdef.h:583
INT_ARRAY * del_bond
Definition inpdef.h:584
INT_ARRAY * mod_bond
Definition inpdef.h:586
INT_ARRAY * mod_coord
Definition inpdef.h:587
Definition inpdef.h:305
AT_NUMB * nSortedOrder
Definition inpdef.h:325
int nNumEquSets
Definition inpdef.h:322
int bDisconnectSalts
Definition inpdef.h:314
AT_NUMB * nEquLabels
Definition inpdef.h:323
int num_dimensions
Definition inpdef.h:309
inp_ATOM * at
Definition inpdef.h:308
int num_components
Definition inpdef.h:313
int n_zy
Definition inpdef.h:334
AT_NUMB * nOldCompNumber
Definition inpdef.h:321
OAD_V3000 * v3000
Definition inpdef.h:332
int bPreprocessed[INCHI_NUM]
Definition inpdef.h:328
AT_NUMB * nCurAtLen
Definition inpdef.h:320
int bSavedInINCHI_LIB[INCHI_NUM]
Definition inpdef.h:327
MOL_COORD * szCoord
Definition inpdef.h:329
int bDisconnectCoord
Definition inpdef.h:315
OAD_Polymer * polymer
Definition inpdef.h:331
int num_inp_atoms
Definition inpdef.h:311
int valid_polymer
Definition inpdef.h:333
int num_inp_bonds
Definition inpdef.h:310
Definition inpdef.h:340
int n_zy
Definition inpdef.h:348
OAD_V3000 * v3000
Definition inpdef.h:347
int num_atoms
Definition inpdef.h:341
char * szBonds
Definition inpdef.h:343
OAD_Polymer * polymer
Definition inpdef.h:346
char * szCoord
Definition inpdef.h:344
char * szAtoms
Definition inpdef.h:342
Definition mode.h:1030
Definition inpdef.h:474
int cur_fptr
Definition inpdef.h:478
int max_fptr
Definition inpdef.h:480
int len_fptr
Definition inpdef.h:477
INCHI_FPTR * fptr
Definition inpdef.h:475