InChI
 
Loading...
Searching...
No Matches
inpdef.h File Reference
#include "mode.h"
#include "ichidrp.h"
#include "mol_fmt.h"
+ Include dependency graph for inpdef.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  tagInputAtom
 
struct  OAD_PolymerUnit
 
struct  OAD_Polymer
 
struct  OAD_AtProps
 
struct  OAD_V3000
 
struct  tagOrigAtom
 
struct  tagOriginalStruct
 
struct  tagAtomParmsForDrawing
 
struct  tagInfoAtomData
 
struct  tagInputAtomData
 
struct  tagNormCanonFlags
 
struct  tagCompositeAtomData
 
struct  tagStructFptrs
 
struct  tagOAD_StructureEdits
 

Macros

#define CLOSING_STARRED_SRU_IS_A_MUST   1
 
#define ALLOW_CLOSING_SRU_VIA_HIGHER_ORDER_BOND   1
 
#define ALLOW_CLOSING_SRU_VIA_DIRADICAL   1
 
#define CLOSING_SRU_NOT_APPLICABLE   0
 
#define CLOSING_SRU_RING   1
 
#define CLOSING_SRU_HIGHER_ORDER_BOND   2
 
#define CLOSING_SRU_DIRADICAL   3
 
#define CLOSING_SRU_RING_OPENED   4
 
#define CLOSING_SRU_MOVED_BRACKETS   5
 
#define bDrawingLabelLeftShift   endpoint /* for drawing only */
 
#define ATT_NONE   0x0000
 
#define ATT_ACIDIC_CO   0x0001
 
#define ATT_ACIDIC_S   0x0002
 
#define ATT_OO   0x0004
 
#define ATT_ZOO   0x0008
 
#define ATT_NO   0x0010
 
#define ATT_N_O   0x0020
 
#define ATT_ATOM_N   0x0040
 
#define ATT_ATOM_P   0x0080
 
#define ATT_OTHER_NEG_O   0x0100
 
#define ATT_OTHER_ZO   0x0200 /* -Z=O or =Z=O */
 
#define ATT_OH_MINUS   0x0400 /* OH(-), O=O,S,Se,Te */
 
#define ATT_O_PLUS   0x0800 /* -OH2(+), =OH(+), -OH(+)-, OH3(+), =O(+)-, etc; O=O,S,Se,Te */
 
#define ATT_PROTON   0x1000
 
#define ATT_HalAnion   0x2000
 
#define ATT_HalAcid   0x4000
 
#define ATT_NP_MINUS_V23   0x8000 /* =N(-) or =P(-) where = previously was triple */
 
#define AT_FLAG_ISO_H_POINT   0x01 /* may have isotopic H */
 
#define PERIODIC_NUMBER_H   1
 
#define NUM_ISO_H(AT, N)   (AT[N].num_iso_H[0]+AT[N].num_iso_H[1]+AT[N].num_iso_H[2])
 
#define NUMH(AT, N)   (AT[N].num_H+NUM_ISO_H(AT,N))
 
#define FlagSC_0D   1 /* bUsed0DParity */
 
#define FlagSB_0D   2 /* bUsed0DParity */
 
#define SB_PARITY_FLAG   0x38 /* mask for disconnected metal parity if it is different */
 
#define SB_PARITY_SHFT   3 /* number of right shift bits to get disconnected metal parity */
 
#define SB_PARITY_MASK   0x07
 
#define SB_PARITY_1(X)   (X & SB_PARITY_MASK) /* refers to connected structure */
 
#define SB_PARITY_2(X)   (((X) >> SB_PARITY_SHFT) & SB_PARITY_MASK) /* refers to connected structure */
 
#define NO_POLYMER   -1
 
#define POLYMER_REPRESENTATION_SOURCE_BASED   1
 
#define POLYMER_REPRESENTATION_STRUCTURE_BASED   2
 
#define POLYMER_REPRESENTATION_MIXED   3
 
#define POLYMER_REPRESENTATION_UNRECOGNIZED   4
 
#define ALLOW_MIXED_SRU_AND_MON   1 /* allow simultaneous presence of source-based and */
 
#define POLYMER_STY_NON   0
 
#define POLYMER_STY_SRU   1 /* structure-based unit or copolymer subunit */
 
#define POLYMER_STY_MON   2 /* source-based polymer unit or copolymer subunit */
 
#define POLYMER_STY_COP   3 /* copolymer unit embedding >1 subunits */
 
#define POLYMER_STY_MOD   4 /* copolymer subunit only, designates chemical modification of SRU */
 
#define POLYMER_STY_CRO   5 /* copolymer subunit only, designates cross-linked version of SRU */
 
#define POLYMER_STY_MER   6 /* copolymer subunit only, source-based with no homopolymerize */
 
#define POLYMER_SST_NON   0
 
#define POLYMER_SST_ALT   1
 
#define POLYMER_SST_RAN   2
 
#define POLYMER_SST_BLK   3
 
#define POLYMER_CONN_NON   0
 
#define POLYMER_CONN_HT   1
 
#define POLYMER_CONN_HH   2
 
#define POLYMER_CONN_EU   3
 
#define INF_STEREO_ABS   0x0001
 
#define INF_STEREO_REL   0x0002
 
#define INF_STEREO_RAC   0x0004
 
#define INF_STEREO_NORM   0x0008
 
#define INF_STEREO_INV   0x0010
 
#define INF_STEREO   0x0020
 
#define INF_STEREO_ABS_REL_RAC   (INF_STEREO_ABS | INF_STEREO_REL | INF_STEREO_RAC)
 
#define INF_STEREO_NORM_INV   (INF_STEREO_NORM | INF_STEREO_INV)
 
#define MAX_LEN_REMOVED_PROTONS   128
 
#define ADD_LEN_STRUCT_FPTRS   100 /* allocation increments */
 
#define FLAG_INP_AT_CHIRAL   1
 
#define FLAG_INP_AT_NONCHIRAL   2
 
#define FLAG_SET_INP_AT_CHIRAL   4
 
#define FLAG_SET_INP_AT_NONCHIRAL   8
 
#define FLAG_SET_INP_LARGE_MOLS   16
 

Typedefs

typedef S_SHORT ST_CAP_FLOW
 
typedef struct tagInputAtom inp_ATOM
 
typedef struct OAD_PolymerUnit OAD_PolymerUnit
 
typedef struct OAD_Polymer OAD_Polymer
 
typedef struct OAD_AtProps OAD_AtProps
 
typedef struct OAD_V3000 OAD_V3000
 
typedef struct tagOrigAtom ORIG_ATOM_DATA
 
typedef struct tagOriginalStruct ORIG_STRUCT
 
typedef struct tagAtomParmsForDrawing inf_ATOM
 
typedef struct tagInfoAtomData INF_ATOM_DATA
 
typedef struct tagInputAtomData INP_ATOM_DATA
 
typedef INP_ATOM_DATA INP_ATOM_DATA2[TAUT_NUM]
 
typedef struct tagNormCanonFlags NORM_CANON_FLAGS
 
typedef struct tagCompositeAtomData COMP_ATOM_DATA
 
typedef long INCHI_FPTR
 
typedef struct tagStructFptrs STRUCT_FPTRS
 
typedef struct tagOAD_StructureEdits OAD_StructureEdits
 

Functions

int bInchiTimeIsOver (struct tagINCHI_CLOCK *ic, struct tagInchiTime *TickEnd)
 
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)
 
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)
 
int MarkDisconnectedComponents (ORIG_ATOM_DATA *orig_at_data, int bProcessOldCompNumbers)
 
int DisconnectSalts (ORIG_ATOM_DATA *orig_inp_data, int bDisconnect)
 
int DisconnectMetals (ORIG_ATOM_DATA *orig_inp_data, int bCheckMetalValence, INCHI_MODE *bTautFlagsDone)
 
int bMayDisconnectMetals (ORIG_ATOM_DATA *orig_inp_data, int bCheckMetalValence, INCHI_MODE *bTautFlagsDone)
 
int bHasMetalAtom (ORIG_ATOM_DATA *orig_inp_data)
 
int FixAdjacentRadicals (int num_inp_atoms, inp_ATOM *at)
 
int fix_odd_things (int num_atoms, inp_ATOM *at, int bFixBug, int bFixNonUniformDraw)
 
int post_fix_odd_things (int num_atoms, inp_ATOM *at)
 
int remove_ion_pairs (int num_atoms, inp_ATOM *at)
 
int bFoundFeature (inp_ATOM *at, int num_atoms)
 
int UnMarkRingSystemsInp (inp_ATOM *at, int num_atoms)
 
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)
 
void FreeInpAtom (inp_ATOM **at)
 
void FreeInfAtom (inf_ATOM **at)
 
void FreeOrigAtData (ORIG_ATOM_DATA *orig_at_data)
 
void FreeExtOrigAtData (OAD_Polymer *pd, OAD_V3000 *v3k)
 
void FreeInpAtomData (INP_ATOM_DATA *inp_at_data)
 
void FreeCompAtomData (COMP_ATOM_DATA *inp_at_data)
 
void FreeInfoAtomData (INF_ATOM_DATA *inf_at_data)
 
int OAD_StructureEdits_Init (OAD_StructureEdits *ed)
 
void OAD_StructureEdits_Clear (OAD_StructureEdits *ed)
 
void OAD_StructureEdits_DebugPrint (OAD_StructureEdits *ed)
 
int Ring2Chain (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data)
 
int OAD_Edit_Underivatize (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data, int bOutputSdf, int bOutputReport, char *pSdfValue)
 
void OAD_Edit_MergeComponentsAndRecreateOAD (ORIG_ATOM_DATA *orig_OrigAtomData, INP_ATOM_DATA *curr_InpAtomData, int num_components, int *errcode)
 
int OAD_ValidatePolymerAndPseudoElementData (ORIG_ATOM_DATA *orig_at_data, int treat_polymers, int bNPZz, char *pStrErr, int bNoWarnings)
 
void OAD_ValidateAndSortOutPseudoElementAtoms (ORIG_ATOM_DATA *orig_at_data, int treat_polymers, int use_zz, int *err, char *pStrErr)
 
int OAD_Polymer_GetRepresentation (OAD_Polymer *p)
 
int OAD_Polymer_CyclizeCloseableUnits (ORIG_ATOM_DATA *orig_at_data, int use_zz, char *pStrErr, int bNoWarnings)
 
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)
 
void OAD_Polymer_SetAtProps (OAD_Polymer *pd, inp_ATOM *at, int nat, int *num_inp_bonds, OAD_AtProps *aprops, int *cano_nums)
 
int OAD_Polymer_CompareBackboneBondsSeniority (int *b1, int *b2, OAD_AtProps *aprops)
 
int OAD_Polymer_CompareRanksOfTwoAtoms (int atom1, int atom2, OAD_AtProps *aprops)
 
int OAD_Polymer_IsFirstAtomRankLower (int atom1, int atom2, OAD_AtProps *aprops)
 
int OAD_PolymerUnit_SetReopeningDetails (OAD_PolymerUnit *u, inp_ATOM *at)
 
void OAD_PolymerUnit_SortBackboneBondsAndSetSeniors (OAD_PolymerUnit *u, inp_ATOM *at, OAD_AtProps *aprops, int *senior_bond)
 
void OAD_Polymer_FindBackbones (ORIG_ATOM_DATA *where_to_look, COMP_ATOM_DATA *composite_norm_data, int *err, char *pStrErr)
 
int OAD_Polymer_PrepareWorkingSet (OAD_Polymer *p, int *cano_nums, int *compnt_nums, OAD_PolymerUnit **units2, int *unum)
 
void OAD_Polymer_Free (OAD_Polymer *p)
 
void OAD_Polymer_DebugTrace (OAD_Polymer *p)
 
void OAD_Polymer_SmartReopenCyclizedUnits (OAD_Polymer *p, inp_ATOM *at, int nat, int *num_inp_bonds)
 
int OAD_Polymer_PrepareFoldCRUEdits (ORIG_ATOM_DATA *orig_at_data, char *sinchi_noedits, char *saux_noedits, char *sinchi, char *saux, OAD_StructureEdits *ed)
 
int OAD_Polymer_PrepareFrameShiftEdits (ORIG_ATOM_DATA *orig_at_data, char *sinchi, char *saux, OAD_StructureEdits *ed)
 
OAD_PolymerUnitOAD_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)
 
OAD_PolymerUnitOAD_PolymerUnit_CreateCopy (OAD_PolymerUnit *u)
 
void OAD_PolymerUnit_Free (OAD_PolymerUnit *unit)
 
void OAD_PolymerUnit_DebugTrace (OAD_PolymerUnit *unit)
 
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)
 
void OAD_PolymerUnit_SetEndsAndCaps (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 
void OAD_PolymerUnit_UnlinkCapsAndConnectEndAtoms (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 
void OAD_PolymerUnit_PrepareToFrameShift (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 
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)
 
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)
 
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)
 
void OAD_PolymerUnit_DelistIntraRingBackboneBonds (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 
void OAD_PolymerUnit_DelistHighOrderBackboneBonds (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, COMP_ATOM_DATA *composite_norm_data, int *err, char *pStrErr)
 
void OAD_PolymerUnit_SortBackboneBonds (OAD_PolymerUnit *u, OAD_AtProps *aprops, int *bnum)
 
void OAD_PolymerUnit_ReopenCyclized (OAD_PolymerUnit *u, inp_ATOM *at, OAD_AtProps *aprops, int nat, int *num_inp_bonds)
 
int OAD_PolymerUnit_CompareAtomLists (OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
 
int OAD_PolymerUnit_CompareAtomListsMod (OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
 
int OAD_PolymerUnit_OrderBondAtomsAndBondsThemselves (OAD_PolymerUnit *u, int n_stars, int *stars)
 
int OAD_PolymerUnit_HasMetal (OAD_PolymerUnit *u, inp_ATOM *at)
 
int FixUnkn0DStereoBonds (inp_ATOM *at, int num_at)
 
inf_ATOMCreateInfAtom (int num_atoms)
 
inp_ATOMCreateInpAtom (int num_atoms)
 
int CreateInfoAtomData (INF_ATOM_DATA *inf_at_data, int num_atoms, int num_components)
 
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 CreateInpAtomData (INP_ATOM_DATA *inp_at_data, int num_atoms, int create_at_fixed_bonds)
 
int CreateCompAtomData (COMP_ATOM_DATA *inp_at_data, int num_atoms, int num_components, int bIntermediateTaut)
 
void PrintFileName (const char *fmt, FILE *out_file, const char *szFname)
 
void MySleep (unsigned long ms)
 
int ReconcileAllCmlBondParities (inp_ATOM *at, int num_atoms, int bDisconnected)
 

Macro Definition Documentation

◆ ADD_LEN_STRUCT_FPTRS

#define ADD_LEN_STRUCT_FPTRS   100 /* allocation increments */

◆ ALLOW_CLOSING_SRU_VIA_DIRADICAL

#define ALLOW_CLOSING_SRU_VIA_DIRADICAL   1

◆ ALLOW_CLOSING_SRU_VIA_HIGHER_ORDER_BOND

#define ALLOW_CLOSING_SRU_VIA_HIGHER_ORDER_BOND   1

◆ ALLOW_MIXED_SRU_AND_MON

#define ALLOW_MIXED_SRU_AND_MON   1 /* allow simultaneous presence of source-based and */

◆ AT_FLAG_ISO_H_POINT

#define AT_FLAG_ISO_H_POINT   0x01 /* may have isotopic H */

◆ ATT_ACIDIC_CO

#define ATT_ACIDIC_CO   0x0001

◆ ATT_ACIDIC_S

#define ATT_ACIDIC_S   0x0002

◆ ATT_ATOM_N

#define ATT_ATOM_N   0x0040

◆ ATT_ATOM_P

#define ATT_ATOM_P   0x0080

◆ ATT_HalAcid

#define ATT_HalAcid   0x4000

◆ ATT_HalAnion

#define ATT_HalAnion   0x2000

◆ ATT_N_O

#define ATT_N_O   0x0020

◆ ATT_NO

#define ATT_NO   0x0010

◆ ATT_NONE

#define ATT_NONE   0x0000

◆ ATT_NP_MINUS_V23

#define ATT_NP_MINUS_V23   0x8000 /* =N(-) or =P(-) where = previously was triple */

◆ ATT_O_PLUS

#define ATT_O_PLUS   0x0800 /* -OH2(+), =OH(+), -OH(+)-, OH3(+), =O(+)-, etc; O=O,S,Se,Te */

◆ ATT_OH_MINUS

#define ATT_OH_MINUS   0x0400 /* OH(-), O=O,S,Se,Te */

◆ ATT_OO

#define ATT_OO   0x0004

◆ ATT_OTHER_NEG_O

#define ATT_OTHER_NEG_O   0x0100

◆ ATT_OTHER_ZO

#define ATT_OTHER_ZO   0x0200 /* -Z=O or =Z=O */

◆ ATT_PROTON

#define ATT_PROTON   0x1000

◆ ATT_ZOO

#define ATT_ZOO   0x0008

◆ bDrawingLabelLeftShift

#define bDrawingLabelLeftShift   endpoint /* for drawing only */

◆ CLOSING_SRU_DIRADICAL

#define CLOSING_SRU_DIRADICAL   3

◆ CLOSING_SRU_HIGHER_ORDER_BOND

#define CLOSING_SRU_HIGHER_ORDER_BOND   2

◆ CLOSING_SRU_MOVED_BRACKETS

#define CLOSING_SRU_MOVED_BRACKETS   5

◆ CLOSING_SRU_NOT_APPLICABLE

#define CLOSING_SRU_NOT_APPLICABLE   0

◆ CLOSING_SRU_RING

#define CLOSING_SRU_RING   1

◆ CLOSING_SRU_RING_OPENED

#define CLOSING_SRU_RING_OPENED   4

◆ CLOSING_STARRED_SRU_IS_A_MUST

#define CLOSING_STARRED_SRU_IS_A_MUST   1

◆ FLAG_INP_AT_CHIRAL

#define FLAG_INP_AT_CHIRAL   1

◆ FLAG_INP_AT_NONCHIRAL

#define FLAG_INP_AT_NONCHIRAL   2

◆ FLAG_SET_INP_AT_CHIRAL

#define FLAG_SET_INP_AT_CHIRAL   4

◆ FLAG_SET_INP_AT_NONCHIRAL

#define FLAG_SET_INP_AT_NONCHIRAL   8

◆ FLAG_SET_INP_LARGE_MOLS

#define FLAG_SET_INP_LARGE_MOLS   16

◆ FlagSB_0D

#define FlagSB_0D   2 /* bUsed0DParity */

◆ FlagSC_0D

#define FlagSC_0D   1 /* bUsed0DParity */

◆ INF_STEREO

#define INF_STEREO   0x0020

◆ INF_STEREO_ABS

#define INF_STEREO_ABS   0x0001

◆ INF_STEREO_ABS_REL_RAC

#define INF_STEREO_ABS_REL_RAC   (INF_STEREO_ABS | INF_STEREO_REL | INF_STEREO_RAC)

◆ INF_STEREO_INV

#define INF_STEREO_INV   0x0010

◆ INF_STEREO_NORM

#define INF_STEREO_NORM   0x0008

◆ INF_STEREO_NORM_INV

#define INF_STEREO_NORM_INV   (INF_STEREO_NORM | INF_STEREO_INV)

◆ INF_STEREO_RAC

#define INF_STEREO_RAC   0x0004

◆ INF_STEREO_REL

#define INF_STEREO_REL   0x0002

◆ MAX_LEN_REMOVED_PROTONS

#define MAX_LEN_REMOVED_PROTONS   128

◆ NO_POLYMER

#define NO_POLYMER   -1

◆ NUM_ISO_H

#define NUM_ISO_H (   AT,
 
)    (AT[N].num_iso_H[0]+AT[N].num_iso_H[1]+AT[N].num_iso_H[2])

◆ NUMH

#define NUMH (   AT,
 
)    (AT[N].num_H+NUM_ISO_H(AT,N))

◆ PERIODIC_NUMBER_H

#define PERIODIC_NUMBER_H   1

◆ POLYMER_CONN_EU

#define POLYMER_CONN_EU   3

◆ POLYMER_CONN_HH

#define POLYMER_CONN_HH   2

◆ POLYMER_CONN_HT

#define POLYMER_CONN_HT   1

◆ POLYMER_CONN_NON

#define POLYMER_CONN_NON   0

◆ POLYMER_REPRESENTATION_MIXED

#define POLYMER_REPRESENTATION_MIXED   3

◆ POLYMER_REPRESENTATION_SOURCE_BASED

#define POLYMER_REPRESENTATION_SOURCE_BASED   1

◆ POLYMER_REPRESENTATION_STRUCTURE_BASED

#define POLYMER_REPRESENTATION_STRUCTURE_BASED   2

◆ POLYMER_REPRESENTATION_UNRECOGNIZED

#define POLYMER_REPRESENTATION_UNRECOGNIZED   4

◆ POLYMER_SST_ALT

#define POLYMER_SST_ALT   1

◆ POLYMER_SST_BLK

#define POLYMER_SST_BLK   3

◆ POLYMER_SST_NON

#define POLYMER_SST_NON   0

◆ POLYMER_SST_RAN

#define POLYMER_SST_RAN   2

◆ POLYMER_STY_COP

#define POLYMER_STY_COP   3 /* copolymer unit embedding >1 subunits */

◆ POLYMER_STY_CRO

#define POLYMER_STY_CRO   5 /* copolymer subunit only, designates cross-linked version of SRU */

◆ POLYMER_STY_MER

#define POLYMER_STY_MER   6 /* copolymer subunit only, source-based with no homopolymerize */

◆ POLYMER_STY_MOD

#define POLYMER_STY_MOD   4 /* copolymer subunit only, designates chemical modification of SRU */

◆ POLYMER_STY_MON

#define POLYMER_STY_MON   2 /* source-based polymer unit or copolymer subunit */

◆ POLYMER_STY_NON

#define POLYMER_STY_NON   0

◆ POLYMER_STY_SRU

#define POLYMER_STY_SRU   1 /* structure-based unit or copolymer subunit */

◆ SB_PARITY_1

#define SB_PARITY_1 (   X)    (X & SB_PARITY_MASK) /* refers to connected structure */

◆ SB_PARITY_2

#define SB_PARITY_2 (   X)    (((X) >> SB_PARITY_SHFT) & SB_PARITY_MASK) /* refers to connected structure */

◆ SB_PARITY_FLAG

#define SB_PARITY_FLAG   0x38 /* mask for disconnected metal parity if it is different */

◆ SB_PARITY_MASK

#define SB_PARITY_MASK   0x07

◆ SB_PARITY_SHFT

#define SB_PARITY_SHFT   3 /* number of right shift bits to get disconnected metal parity */

Typedef Documentation

◆ COMP_ATOM_DATA

◆ INCHI_FPTR

typedef long INCHI_FPTR

◆ inf_ATOM

◆ INF_ATOM_DATA

◆ inp_ATOM

typedef struct tagInputAtom inp_ATOM

◆ INP_ATOM_DATA

◆ INP_ATOM_DATA2

typedef INP_ATOM_DATA INP_ATOM_DATA2[TAUT_NUM]

◆ NORM_CANON_FLAGS

◆ OAD_AtProps

typedef struct OAD_AtProps OAD_AtProps

◆ OAD_Polymer

typedef struct OAD_Polymer OAD_Polymer

◆ OAD_PolymerUnit

◆ OAD_StructureEdits

◆ OAD_V3000

typedef struct OAD_V3000 OAD_V3000

◆ ORIG_ATOM_DATA

typedef struct tagOrigAtom ORIG_ATOM_DATA

◆ ORIG_STRUCT

◆ ST_CAP_FLOW

◆ STRUCT_FPTRS

typedef struct tagStructFptrs STRUCT_FPTRS

Function Documentation

◆ AllocateInfoAtomData()

int AllocateInfoAtomData ( INF_ATOM_DATA inf_at_data,
int  num_atoms,
int  num_components 
)

◆ bFoundFeature()

int bFoundFeature ( inp_ATOM at,
int  num_atoms 
)
+ Here is the caller graph for this function:

◆ bHasMetalAtom()

int bHasMetalAtom ( ORIG_ATOM_DATA orig_inp_data)
+ Here is the caller graph for this function:

◆ bInchiTimeIsOver()

int bInchiTimeIsOver ( struct tagINCHI_CLOCK ic,
struct tagInchiTime TickEnd 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bMayDisconnectMetals()

int bMayDisconnectMetals ( ORIG_ATOM_DATA orig_inp_data,
int  bCheckMetalValence,
INCHI_MODE bTautFlagsDone 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateCompAtomData()

int CreateCompAtomData ( COMP_ATOM_DATA inp_at_data,
int  num_atoms,
int  num_components,
int  bIntermediateTaut 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateInfAtom()

inf_ATOM * CreateInfAtom ( int  num_atoms)

◆ CreateInfoAtomData()

int CreateInfoAtomData ( INF_ATOM_DATA inf_at_data,
int  num_atoms,
int  num_components 
)

◆ CreateInpAtom()

inp_ATOM * CreateInpAtom ( int  num_atoms)
+ Here is the caller graph for this function:

◆ CreateInpAtomData()

int CreateInpAtomData ( INP_ATOM_DATA inp_at_data,
int  num_atoms,
int  create_at_fixed_bonds 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateOrigInpDataFromMolfile()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DisconnectMetals()

int DisconnectMetals ( ORIG_ATOM_DATA orig_inp_data,
int  bCheckMetalValence,
INCHI_MODE bTautFlagsDone 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DisconnectSalts()

int DisconnectSalts ( ORIG_ATOM_DATA orig_inp_data,
int  bDisconnect 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DuplicateInfoAtomData()

int DuplicateInfoAtomData ( INF_ATOM_DATA inf_at_data_to,
const INF_ATOM_DATA inf_at_data_from 
)

◆ fix_odd_things()

int fix_odd_things ( int  num_atoms,
inp_ATOM at,
int  bFixBug,
int  bFixNonUniformDraw 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixAdjacentRadicals()

int FixAdjacentRadicals ( int  num_inp_atoms,
inp_ATOM at 
)
+ Here is the caller graph for this function:

◆ FixUnkn0DStereoBonds()

int FixUnkn0DStereoBonds ( inp_ATOM at,
int  num_at 
)
+ Here is the caller graph for this function:

◆ FreeCompAtomData()

void FreeCompAtomData ( COMP_ATOM_DATA inp_at_data)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FreeExtOrigAtData()

void FreeExtOrigAtData ( OAD_Polymer pd,
OAD_V3000 v3k 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FreeInfAtom()

void FreeInfAtom ( inf_ATOM **  at)

◆ FreeInfoAtomData()

void FreeInfoAtomData ( INF_ATOM_DATA inf_at_data)

◆ FreeInpAtom()

void FreeInpAtom ( inp_ATOM **  at)
+ Here is the caller graph for this function:

◆ FreeInpAtomData()

void FreeInpAtomData ( INP_ATOM_DATA inp_at_data)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FreeOrigAtData()

void FreeOrigAtData ( ORIG_ATOM_DATA orig_at_data)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InchiToOrigAtom()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MarkDisconnectedComponents()

int MarkDisconnectedComponents ( ORIG_ATOM_DATA orig_at_data,
int  bProcessOldCompNumbers 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MySleep()

void MySleep ( unsigned long  ms)

◆ OAD_CollectBackboneAtoms()

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 
)
+ Here is the call graph for this function:

◆ OAD_CollectBackboneBonds()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_CollectReachableAtoms()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Edit_MergeComponentsAndRecreateOAD()

void OAD_Edit_MergeComponentsAndRecreateOAD ( ORIG_ATOM_DATA orig_OrigAtomData,
INP_ATOM_DATA curr_InpAtomData,
int  num_components,
int *  errcode 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Edit_Underivatize()

int OAD_Edit_Underivatize ( struct tagINCHI_CLOCK ic,
struct tagCANON_GLOBALS pCG,
ORIG_ATOM_DATA orig_inp_data,
int  bOutputSdf,
int  bOutputReport,
char *  pSdfValue 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_CompareBackboneBondsSeniority()

int OAD_Polymer_CompareBackboneBondsSeniority ( int *  b1,
int *  b2,
OAD_AtProps aprops 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_CompareRanksOfTwoAtoms()

int OAD_Polymer_CompareRanksOfTwoAtoms ( int  atom1,
int  atom2,
OAD_AtProps aprops 
)
+ Here is the caller graph for this function:

◆ OAD_Polymer_CyclizeCloseableUnits()

int OAD_Polymer_CyclizeCloseableUnits ( ORIG_ATOM_DATA orig_at_data,
int  use_zz,
char *  pStrErr,
int  bNoWarnings 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_DebugTrace()

void OAD_Polymer_DebugTrace ( OAD_Polymer p)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_FindBackbones()

void OAD_Polymer_FindBackbones ( ORIG_ATOM_DATA where_to_look,
COMP_ATOM_DATA composite_norm_data,
int *  err,
char *  pStrErr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_FindRingSystems()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_Free()

void OAD_Polymer_Free ( OAD_Polymer p)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_GetRepresentation()

int OAD_Polymer_GetRepresentation ( OAD_Polymer p)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_IsFirstAtomRankLower()

int OAD_Polymer_IsFirstAtomRankLower ( int  atom1,
int  atom2,
OAD_AtProps aprops 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_PrepareFoldCRUEdits()

int OAD_Polymer_PrepareFoldCRUEdits ( ORIG_ATOM_DATA orig_at_data,
char *  sinchi_noedits,
char *  saux_noedits,
char *  sinchi,
char *  saux,
OAD_StructureEdits ed 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_PrepareFrameShiftEdits()

int OAD_Polymer_PrepareFrameShiftEdits ( ORIG_ATOM_DATA orig_at_data,
char *  sinchi,
char *  saux,
OAD_StructureEdits ed 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_PrepareWorkingSet()

int OAD_Polymer_PrepareWorkingSet ( OAD_Polymer p,
int *  cano_nums,
int *  compnt_nums,
OAD_PolymerUnit **  units2,
int *  unum 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_SetAtProps()

void OAD_Polymer_SetAtProps ( OAD_Polymer pd,
inp_ATOM at,
int  nat,
int *  num_inp_bonds,
OAD_AtProps aprops,
int *  cano_nums 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_Polymer_SmartReopenCyclizedUnits()

void OAD_Polymer_SmartReopenCyclizedUnits ( OAD_Polymer p,
inp_ATOM at,
int  nat,
int *  num_inp_bonds 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_CompareAtomLists()

int OAD_PolymerUnit_CompareAtomLists ( OAD_PolymerUnit u1,
OAD_PolymerUnit u2 
)

◆ OAD_PolymerUnit_CompareAtomListsMod()

int OAD_PolymerUnit_CompareAtomListsMod ( OAD_PolymerUnit u1,
OAD_PolymerUnit u2 
)
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_CreateCopy()

OAD_PolymerUnit * OAD_PolymerUnit_CreateCopy ( OAD_PolymerUnit u)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_DebugTrace()

void OAD_PolymerUnit_DebugTrace ( OAD_PolymerUnit unit)
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_DelistHighOrderBackboneBonds()

void OAD_PolymerUnit_DelistHighOrderBackboneBonds ( OAD_PolymerUnit unit,
ORIG_ATOM_DATA orig_at_data,
COMP_ATOM_DATA composite_norm_data,
int *  err,
char *  pStrErr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_DelistIntraRingBackboneBonds()

void OAD_PolymerUnit_DelistIntraRingBackboneBonds ( OAD_PolymerUnit unit,
ORIG_ATOM_DATA orig_at_data,
int *  err,
char *  pStrErr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_FindEndsAndCaps()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_Free()

void OAD_PolymerUnit_Free ( OAD_PolymerUnit unit)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_HasMetal()

int OAD_PolymerUnit_HasMetal ( OAD_PolymerUnit u,
inp_ATOM at 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_New()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_OrderBondAtomsAndBondsThemselves()

int OAD_PolymerUnit_OrderBondAtomsAndBondsThemselves ( OAD_PolymerUnit u,
int  n_stars,
int *  stars 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_PrepareToFrameShift()

void OAD_PolymerUnit_PrepareToFrameShift ( OAD_PolymerUnit unit,
ORIG_ATOM_DATA orig_at_data,
int *  err,
char *  pStrErr 
)

◆ OAD_PolymerUnit_ReopenCyclized()

void OAD_PolymerUnit_ReopenCyclized ( OAD_PolymerUnit u,
inp_ATOM at,
OAD_AtProps aprops,
int  nat,
int *  num_inp_bonds 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_SetEndsAndCaps()

void OAD_PolymerUnit_SetEndsAndCaps ( OAD_PolymerUnit unit,
ORIG_ATOM_DATA orig_at_data,
int *  err,
char *  pStrErr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_SetReopeningDetails()

int OAD_PolymerUnit_SetReopeningDetails ( OAD_PolymerUnit u,
inp_ATOM at 
)
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_SortBackboneBonds()

void OAD_PolymerUnit_SortBackboneBonds ( OAD_PolymerUnit u,
OAD_AtProps aprops,
int *  bnum 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_SortBackboneBondsAndSetSeniors()

void OAD_PolymerUnit_SortBackboneBondsAndSetSeniors ( OAD_PolymerUnit u,
inp_ATOM at,
OAD_AtProps aprops,
int *  senior_bond 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_UnlinkCapsAndConnectEndAtoms()

void OAD_PolymerUnit_UnlinkCapsAndConnectEndAtoms ( OAD_PolymerUnit unit,
ORIG_ATOM_DATA orig_at_data,
int *  err,
char *  pStrErr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_StructureEdits_Clear()

void OAD_StructureEdits_Clear ( OAD_StructureEdits ed)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_StructureEdits_DebugPrint()

void OAD_StructureEdits_DebugPrint ( OAD_StructureEdits ed)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_StructureEdits_Init()

int OAD_StructureEdits_Init ( OAD_StructureEdits ed)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_ValidateAndSortOutPseudoElementAtoms()

void OAD_ValidateAndSortOutPseudoElementAtoms ( ORIG_ATOM_DATA orig_at_data,
int  treat_polymers,
int  use_zz,
int *  err,
char *  pStrErr 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OAD_ValidatePolymerAndPseudoElementData()

int OAD_ValidatePolymerAndPseudoElementData ( ORIG_ATOM_DATA orig_at_data,
int  treat_polymers,
int  bNPZz,
char *  pStrErr,
int  bNoWarnings 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OrigAtData_WriteToSDfile()

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 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ post_fix_odd_things()

int post_fix_odd_things ( int  num_atoms,
inp_ATOM at 
)
+ Here is the caller graph for this function:

◆ PrintFileName()

void PrintFileName ( const char *  fmt,
FILE *  out_file,
const char *  szFname 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ReconcileAllCmlBondParities()

int ReconcileAllCmlBondParities ( inp_ATOM at,
int  num_atoms,
int  bDisconnected 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ remove_ion_pairs()

int remove_ion_pairs ( int  num_atoms,
inp_ATOM at 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Ring2Chain()

int Ring2Chain ( struct tagINCHI_CLOCK ic,
struct tagCANON_GLOBALS pCG,
ORIG_ATOM_DATA orig_inp_data 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UnMarkRingSystemsInp()

int UnMarkRingSystemsInp ( inp_ATOM at,
int  num_atoms 
)
+ Here is the caller graph for this function: