InChI
 
Loading...
Searching...
No Matches
inpdef.h File Reference
#include "ichidrp.h"
#include "mode.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
 Structure describing an input atom. More...
 
struct  OAD_PolymerUnit
 Structure describing a polymer unit. More...
 
struct  OAD_Polymer
 Structure describing a polymer. More...
 
struct  OAD_AtProps
 Structure describing atom properties for OAD. More...
 
struct  OAD_V3000
 Structure describing v. 1.05 extended input supporting V3000; polymers. More...
 
struct  tagOrigAtom
 Structure describing original atom data. More...
 
struct  tagOriginalStruct
 Structure describing the original structure. More...
 
struct  tagAtomParmsForDrawing
 Structure describing atom parameters for drawing. More...
 
struct  tagInfoAtomData
 Structure describing information about atoms for InChI generation. More...
 
struct  tagInputAtomData
 Structure describing input atom data for InChI generation. More...
 
struct  tagNormCanonFlags
 Structure describing normalization and canonicalization flags. More...
 
struct  tagCompositeAtomData
 Structure describing composite atom data for InChI generation. More...
 
struct  tagStructFptrs
 Structure describing file pointers for structures. More...
 
struct  tagOAD_StructureEdits
 Structure describing structure edits. More...
 

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
 
#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
 
#define ATT_OH_MINUS   0x0400
 
#define ATT_O_PLUS   0x0800
 
#define ATT_PROTON   0x1000
 
#define ATT_HalAnion   0x2000
 
#define ATT_HalAcid   0x4000
 
#define ATT_NP_MINUS_V23   0x8000
 
#define AT_FLAG_ISO_H_POINT   0x01
 
#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
 
#define FlagSB_0D   2
 
#define SB_PARITY_FLAG   0x38
 
#define SB_PARITY_SHFT   3
 
#define SB_PARITY_MASK   0x07
 
#define SB_PARITY_1(X)   (X & SB_PARITY_MASK)
 
#define SB_PARITY_2(X)   (((X) >> SB_PARITY_SHFT) & SB_PARITY_MASK)
 
#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
 
#define POLYMER_STY_NON   0
 
#define POLYMER_STY_SRU   1
 
#define POLYMER_STY_MON   2
 
#define POLYMER_STY_COP   3
 
#define POLYMER_STY_MOD   4
 
#define POLYMER_STY_CRO   5
 
#define POLYMER_STY_MER   6
 
#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
 Structure describing an input atom.
 
typedef struct OAD_PolymerUnit OAD_PolymerUnit
 Structure describing a polymer unit.
 
typedef struct OAD_Polymer OAD_Polymer
 Structure describing a polymer.
 
typedef struct OAD_AtProps OAD_AtProps
 Structure describing atom properties for OAD.
 
typedef struct OAD_V3000 OAD_V3000
 Structure describing v. 1.05 extended input supporting V3000; polymers.
 
typedef struct tagOrigAtom ORIG_ATOM_DATA
 Structure describing original atom data.
 
typedef struct tagOriginalStruct ORIG_STRUCT
 Structure describing the original structure.
 
typedef struct tagAtomParmsForDrawing inf_ATOM
 Structure describing atom parameters for drawing.
 
typedef struct tagInfoAtomData INF_ATOM_DATA
 Structure describing information about atoms for InChI generation.
 
typedef struct tagInputAtomData INP_ATOM_DATA
 Structure describing input atom data for InChI generation.
 
typedef INP_ATOM_DATA INP_ATOM_DATA2[TAUT_NUM]
 
typedef struct tagNormCanonFlags NORM_CANON_FLAGS
 Structure describing normalization and canonicalization flags.
 
typedef struct tagCompositeAtomData COMP_ATOM_DATA
 Structure describing composite atom data for InChI generation.
 
typedef long INCHI_FPTR
 
typedef struct tagStructFptrs STRUCT_FPTRS
 Structure describing file pointers for structures.
 
typedef struct tagOAD_StructureEdits OAD_StructureEdits
 Structure describing structure edits.
 

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)
 Create original input data from molfile.
 
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)
 Convert InChI representation to original atom data.
 
int MarkDisconnectedComponents (ORIG_ATOM_DATA *orig_at_data, int bProcessOldCompNumbers)
 Mark disconnected components in the original atom data.
 
int DisconnectSalts (ORIG_ATOM_DATA *orig_inp_data, int bDisconnect)
 Disconnect salts in the original atom data.
 
int DisconnectMetals (ORIG_ATOM_DATA *orig_inp_data, int bCheckMetalValence, INCHI_MODE *bTautFlagsDone)
 Disconnect metals in the original atom data.
 
int bMayDisconnectMetals (ORIG_ATOM_DATA *orig_inp_data, int bCheckMetalValence, INCHI_MODE *bTautFlagsDone)
 Check if metals may be disconnected in the original atom data.
 
int bHasMetalAtom (ORIG_ATOM_DATA *orig_inp_data)
 Check if there is a metal atom in the original atom data.
 
int FixAdjacentRadicals (int num_inp_atoms, inp_ATOM *at)
 Fix adjacent radicals in the input atoms.
 
int fix_odd_things (int num_atoms, inp_ATOM *at, int bFixBug, int bFixNonUniformDraw)
 Fix odd things in the input atoms.
 
int post_fix_odd_things (int num_atoms, inp_ATOM *at)
 Post-fix odd things in the input atoms (does nothing, returns 0)
 
int remove_ion_pairs (int num_atoms, inp_ATOM *at)
 Remove ion pairs from the input atoms.
 
int bFoundFeature (inp_ATOM *at, int num_atoms)
 Check if a feature is found in the input atoms ???
 
int UnMarkRingSystemsInp (inp_ATOM *at, int num_atoms)
 Unmark ring systems in the input 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)
 Write original atom data to SD file.
 
void FreeInpAtom (inp_ATOM **at)
 Free input atom array.
 
void FreeInfAtom (inf_ATOM **at)
 Free information atom array (same as FreeInpAtom)
 
void FreeOrigAtData (ORIG_ATOM_DATA *orig_at_data)
 Free original atom data.
 
void FreeExtOrigAtData (OAD_Polymer *pd, OAD_V3000 *v3k)
 Free extended original atom data (polymers and V3000)
 
void FreeInpAtomData (INP_ATOM_DATA *inp_at_data)
 Free input atom data.
 
void FreeCompAtomData (COMP_ATOM_DATA *inp_at_data)
 Free composite atom data.
 
void FreeInfoAtomData (INF_ATOM_DATA *inf_at_data)
 Free information atom data.
 
int OAD_StructureEdits_Init (OAD_StructureEdits *ed)
 Initialize structure edits.
 
void OAD_StructureEdits_Clear (OAD_StructureEdits *ed)
 Clear structure edits.
 
void OAD_StructureEdits_DebugPrint (OAD_StructureEdits *ed)
 Debug print structure edits.
 
int Ring2Chain (struct tagINCHI_CLOCK *ic, struct tagCANON_GLOBALS *pCG, ORIG_ATOM_DATA *orig_inp_data)
 Convert rings to chains in the original atom 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)
 Underivatize the original atom data (main underivatization procedure)
 
void OAD_Edit_MergeComponentsAndRecreateOAD (ORIG_ATOM_DATA *orig_OrigAtomData, INP_ATOM_DATA *curr_InpAtomData, int num_components, int *errcode)
 Merge components and recreate original atom data.
 
int OAD_ValidatePolymerAndPseudoElementData (ORIG_ATOM_DATA *orig_at_data, int treat_polymers, int bNPZz, char *pStrErr, int bNoWarnings)
 Validate polymer and pseudo-element data in the original atom data.
 
void OAD_ValidateAndSortOutPseudoElementAtoms (ORIG_ATOM_DATA *orig_at_data, int treat_polymers, int use_zz, int *err, char *pStrErr)
 Validate and sort out pseudo-element atoms in the original atom data.
 
int OAD_Polymer_GetRepresentation (OAD_Polymer *p)
 Get polymer representation type.
 
int OAD_Polymer_CyclizeCloseableUnits (ORIG_ATOM_DATA *orig_at_data, int use_zz, char *pStrErr, int bNoWarnings)
 Cyclize closeable units in the original atom data.
 
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)
 Find ring systems in the polymer data.
 
void OAD_Polymer_SetAtProps (OAD_Polymer *pd, inp_ATOM *at, int nat, int *num_inp_bonds, OAD_AtProps *aprops, int *cano_nums)
 Set atom properties for the polymer data.
 
int OAD_Polymer_CompareBackboneBondsSeniority (int *b1, int *b2, OAD_AtProps *aprops)
 Compare backbone bonds seniority (for sorting SRU cyclizing bonds (PS=='frame-shift') in descending order)
 
int OAD_Polymer_CompareRanksOfTwoAtoms (int atom1, int atom2, OAD_AtProps *aprops)
 Compare ranks of two atoms (compare seniority of two atoms in polymer SRU)
 
int OAD_Polymer_IsFirstAtomRankLower (int atom1, int atom2, OAD_AtProps *aprops)
 Check if the first atom has a lower rank than the second atom (check seniority of two atoms in polymer SRU)
 
int OAD_PolymerUnit_SetReopeningDetails (OAD_PolymerUnit *u, inp_ATOM *at)
 Set reopening details for a polymer unit.
 
void OAD_PolymerUnit_SortBackboneBondsAndSetSeniors (OAD_PolymerUnit *u, inp_ATOM *at, OAD_AtProps *aprops, int *senior_bond)
 Sort backbone bonds and set seniors for a polymer unit.
 
void OAD_Polymer_FindBackbones (ORIG_ATOM_DATA *where_to_look, COMP_ATOM_DATA *composite_norm_data, int *err, char *pStrErr)
 Find backbones in the original atom data.
 
int OAD_Polymer_PrepareWorkingSet (OAD_Polymer *p, int *cano_nums, int *compnt_nums, OAD_PolymerUnit **units2, int *unum)
 Prepare working set for polymer processing (replace original atom numbers in polymer data with (canonical num + 1))
 
void OAD_Polymer_Free (OAD_Polymer *p)
 Free polymer data structure.
 
void OAD_Polymer_DebugTrace (OAD_Polymer *p)
 Debug trace for polymer data structure (print the whole polymer data)
 
void OAD_Polymer_SmartReopenCyclizedUnits (OAD_Polymer *p, inp_ATOM *at, int nat, int *num_inp_bonds)
 Smartly reopen cyclized units in the original atom data (open pre-cyclized CRUs appropriately (i.e., make frame shift))
 
int OAD_Polymer_PrepareFoldCRUEdits (ORIG_ATOM_DATA *orig_at_data, char *sinchi_noedits, char *saux_noedits, char *sinchi, char *saux, OAD_StructureEdits *ed)
 Prepare CRU edits for polymer data structure (prepare CRU fold edits as suggested by the strings with preliminary generated interim (1.05+ flavoured) InChI and AuxInfo)
 
int OAD_Polymer_PrepareFrameShiftEdits (ORIG_ATOM_DATA *orig_at_data, char *sinchi, char *saux, OAD_StructureEdits *ed)
 Prepare frame shift edits for polymer data structure (prepare frame shift edits as suggested by the strings with preliminary generated interim (1.05+ flavoured) InChI and AuxInfo)
 
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)
 Create a new polymer unit.
 
OAD_PolymerUnitOAD_PolymerUnit_CreateCopy (OAD_PolymerUnit *u)
 Create a copy of a polymer unit.
 
void OAD_PolymerUnit_Free (OAD_PolymerUnit *unit)
 Free a polymer unit.
 
void OAD_PolymerUnit_DebugTrace (OAD_PolymerUnit *unit)
 Debug trace for a polymer unit (print the whole polymer 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)
 Find the ends and caps of a polymer unit.
 
void OAD_PolymerUnit_SetEndsAndCaps (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 Set the ends and caps of a polymer unit.
 
void OAD_PolymerUnit_UnlinkCapsAndConnectEndAtoms (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 Unlink caps and connect end atoms of a polymer unit.
 
void OAD_PolymerUnit_PrepareToFrameShift (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 Prepare a polymer unit for frame shifting.
 
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)
 Find reachable atoms from a given start atom.
 
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)
 Collect backbone atoms from a polymer unit.
 
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)
 Collect backbone bonds from a polymer unit.
 
void OAD_PolymerUnit_DelistIntraRingBackboneBonds (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *err, char *pStrErr)
 Collect backbone bonds from a polymer unit and delist intra-ring backbone bonds.
 
void OAD_PolymerUnit_DelistHighOrderBackboneBonds (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, COMP_ATOM_DATA *composite_norm_data, int *err, char *pStrErr)
 Collect high-order backbone bonds from a polymer unit.
 
void OAD_PolymerUnit_SortBackboneBonds (OAD_PolymerUnit *u, OAD_AtProps *aprops, int *bnum)
 Collect backbone bonds from a polymer unit and sort them.
 
void OAD_PolymerUnit_ReopenCyclized (OAD_PolymerUnit *u, inp_ATOM *at, OAD_AtProps *aprops, int nat, int *num_inp_bonds)
 Collect backbone atoms from a polymer unit.
 
int OAD_PolymerUnit_CompareAtomLists (OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
 Compare two polymer units based on their atom lists.
 
int OAD_PolymerUnit_CompareAtomListsMod (OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
 Compare two polymer units based on their atom lists with modifications.
 
int OAD_PolymerUnit_OrderBondAtomsAndBondsThemselves (OAD_PolymerUnit *u, int n_stars, int *stars)
 Order bond atoms and bonds themselves in a polymer unit.
 
int OAD_PolymerUnit_HasMetal (OAD_PolymerUnit *u, inp_ATOM *at)
 Check if a polymer unit has a specific atom (e.g., metal)
 
int FixUnkn0DStereoBonds (inp_ATOM *at, int num_at)
 Fix unknown stereo bonds in the input atoms.
 
inf_ATOMCreateInfAtom (int num_atoms)
 Create/allocate a Inf Atom structure.
 
inp_ATOMCreateInpAtom (int num_atoms)
 Create/allocate a Inp Atom structure.
 
int CreateInfoAtomData (INF_ATOM_DATA *inf_at_data, int num_atoms, int num_components)
 Create a Info Atom Data structure.
 
int AllocateInfoAtomData (INF_ATOM_DATA *inf_at_data, int num_atoms, int num_components)
 Allocate memory for Info Atom Data structure.
 
int DuplicateInfoAtomData (INF_ATOM_DATA *inf_at_data_to, const INF_ATOM_DATA *inf_at_data_from)
 Duplicate Info Atom Data structure.
 
int CreateInpAtomData (INP_ATOM_DATA *inp_at_data, int num_atoms, int create_at_fixed_bonds)
 Create a Inp Atom Data structure.
 
int CreateCompAtomData (COMP_ATOM_DATA *inp_at_data, int num_atoms, int num_components, int bIntermediateTaut)
 Create a Comp Atom Data structure.
 
void PrintFileName (const char *fmt, FILE *out_file, const char *szFname)
 Print the file name.
 
void MySleep (unsigned long ms)
 Sleep for a specified amount of time.
 
int ReconcileAllCmlBondParities (inp_ATOM *at, int num_atoms, int bDisconnected)
 Reconcile all CML bond parities in the input atoms.
 

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 structure-based units in embedding copolymer unit

◆ 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 (may be SRU, MON, MER, CRO, MOD; others not supported yet)

◆ 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

Structure describing composite atom data for InChI generation.

Parameters
atArray of input atoms
num_atNumber of atoms
num_removed_HNumber of removed hydrogens
num_bondsNumber of bonds
num_isotopicNumber of isotopic atoms
bExistsFlag indicating if the atom data exists
bDeletedFlag indicating if the atom data is deleted
bHasIsotopicLayerFlag indicating if the atom data has isotopic layer
bTautomericFlag indicating if the atom data is tautomeric
nNumRemovedProtonsNumber of removed protons
nNumRemovedProtonsIsotopicArray with number of removed isotopic protons per isotope
num_iso_HArray with number of isotopic hydrogens per isotope
nOffsetAtAndHArray with offsets for atoms and hydrogens
num_componentsNumber of components

◆ INCHI_FPTR

typedef long INCHI_FPTR

◆ inf_ATOM

Structure describing atom parameters for drawing.

Parameters
at_stringAtom string for drawing
DrawingLabelLeftShiftLeft shift for drawing label
DrawingLabelLengthLength of drawing label
nCanonNbrCanonical number; if zero then do not use all data for the atom
nCanonEquNbrCanonical equivalence number
nTautGroupCanonNbrTautomeric group canonical number
nTautGroupEquNbrTautomeric group equivalence number
cFlagsAdditional flags (e.g., AT_FLAG_ISO_H_POINT)
nDebugDataDebug data (only if DISPLAY_DEBUG_DATA is defined)
cHighlightTheAtomFlag indicating whether to highlight the atom
cStereoCenterParityStereo center parity
cStereoBondParityStereo bond parities
cStereoBondWarningStereo bond warnings
cStereoBondNumberStereo bond numbers

◆ INF_ATOM_DATA

Structure describing information about atoms for InChI generation.

Parameters
atArray of atoms for InChI generation
num_atNumber of atoms
StereoFlagsStereo flags
num_componentsNumber of components
pStereoFlagsPointer to stereo flags per component
nNumRemovedProtonsNumber of removed protons
num_removed_iso_HNumber of removed/exchangeable isotopic hydrogens
num_iso_HArray with number of removed isotopic hydrogens per isotope
szRemovedProtonsString with removed protons

◆ inp_ATOM

typedef struct tagInputAtom inp_ATOM

Structure describing an input atom.

Parameters
elnameName of chemical element
el_numberNumber of the element in the Periodic Table
neighborPositions (from 0) of the neighbors in the inp_ATOM array
orig_at_numberOriginal atom number
orig_compt_at_numbOriginal atom number within the component before terminal H removal
bond_stereoBond stereo information (1=Up,4=Either,6=Down; this atom is at the pointing wedge, negative => on the opposite side; 3=Either double bond)
bond_typeBond type (1..4; 4="aromatic", should be discouraged on input)
valenceValence (for most chemists, it is coordination number, CN; number of bonds = number of neighbors)
chem_bonds_valenceChemical bonds valence (for most chemists, it is what usually called valence; sum of bond types (type 4 needs special treatment))
num_HNumber of implicit hydrogens, including D and T
num_iso_HNumber of implicit 1H, 2H(D), 3H(T) < 16
iso_atw_diffIsotopic atomic weight difference (=0 => natural isotopic abundances; >0 => (mass) - (mass of the most abundant isotope) + 1; <0 => (mass) - (mass of the most abundant isotope))
chargeCharge
radicalRadical type (RADICAL_SINGLET, RADICAL_DOUBLET, or RADICAL_TRIPLET)
bAmbiguousStereoFlag indicating ambiguous stereochemistry
cFlagsAdditional flags (e.g., AT_FLAG_ISO_H_POINT)
at_typeAtom type (ATT_NONE, ATT_ACIDIC, etc.)
componentNumber of the structure component > 0
endpointID of a tautomeric group
c_pointID of a positive charge group
x,y,z3D coordinates
bUsed0DParityBit flags for 0D parities (bit=1 => stereobond; bit=2 => stereocenter)
p_parity0D tetrahedral parity
p_orig_at_numOriginal atom numbers of neighbors for tetrahedral stereochemistry
sb_ordStereo bond/neighbor ordering number, starts from 0
sn_ordOrd. num. of the neighbor adjacent to the SB; starts from 0; -1 means removed explicit H
sb_parityStereo bond parities
sn_orig_at_numOriginal atom numbers of neighbors for stereobonds
bCutVertexFlag indicating if the atom is a cut vertex (part of ring system analysis)
nRingSystemRing system number (part of ring system analysis)
nNumAtInRingSystemNumber of atoms in the ring system (part of ring system analysis)
nBlockSystemBlock system number (part of ring system analysis)
nDistanceFromTerminalDistance from terminal atom or ring system (terminal atom or ring system has 1, next has 2, etc.)

◆ INP_ATOM_DATA

Structure describing input atom data for InChI generation.

Parameters
atArray of input atoms
at_fixed_bondsArray of input atoms with fixed bonds (tautomeric case, added or removed H)
num_atNumber of atoms
num_removed_HNumber of removed hydrogens
num_bondsNumber of bonds
num_isotopicNumber of isotopic atoms
bExistsFlag indicating if the atom data exists
bDeletedFlag indicating if the atom data is deleted
bHasIsotopicLayerFlag indicating if the atom data has isotopic layer
bTautomericFlag indicating if the atom data is tautomeric
bTautPreprocessedFlag indicating if the atom data is tautomeric and preprocessed
nNumRemovedProtonsNumber of removed protons
nNumRemovedProtonsIsotopicArray with number of removed isotopic protons per isotope
num_iso_HArray with number of isotopic hydrogens per isotope
bTautFlagsTautomeric flags
bTautFlagsDoneTautomeric flags done
bNormalizationFlagsNormalization flags

◆ INP_ATOM_DATA2

typedef INP_ATOM_DATA INP_ATOM_DATA2[TAUT_NUM]

◆ NORM_CANON_FLAGS

Structure describing normalization and canonicalization flags.

Parameters
bTautFlagsTautomeric flags
bTautFlagsDoneTautomeric flags done
bNormalizationFlagsNormalization flags
nCanonFlagsCanonicalization flags

◆ OAD_AtProps

typedef struct OAD_AtProps OAD_AtProps

Structure describing atom properties for OAD.

Parameters
erankRank of element; 2 - C, >2 - rank of heteroatom in chain, O > S > Se > Te > N ...., Rule 4
ring_erank0 - not ring or just carbocycle, >2 - rank of senior heteroatom in this cycle, according to Rule 2 ( N > O >... )
ring_numRing number
ring_size0 or ring system size that is: ring_erank != 0 heterocycle of ring_size ring_erank==0 && ring_size>0 carbocycle of ring_size

◆ OAD_Polymer

typedef struct OAD_Polymer OAD_Polymer

Structure describing a polymer.

Parameters
unitsarray of pointers to units
nnumber of units
n_pzznumber of polymeric Zz atoms
pzzpolymeric Zz atoms
really_do_frame_shiftflag indicating whether to do frame shift
frame_shift_schemeframe shift analysis scheme
treattreatment flag
representationrepresentation type
is_in_reconnflag indicating whether polymer is in reconnection mode
edit_repeatsflag indicating whether repeats need to be edited (-1 unknown, to be checked; 0 no, no edits required; 1 yes, edits are necessary)

◆ OAD_PolymerUnit

Structure describing a polymer unit.

Parameters
idIt is what is called 'Sgroup number' in CTFILE
typeType as by MDL format (STY)
subtypeSubtype as by MDL format (SST)
connConnection scheme as by MDL format (SCN)
labelIt is what is called 'unique Sgroup identifier' CTFILE
naNumber of atoms in the unit
nbNumber of bonds in the unit
cyclizable=1 if frame shift via CRU 'cyclization' is applicable
cyclized=1 if CRU already was frame_shift' treated
xbr1Bracket ends coordinates (SDI)
xbr2Bracket ends coordinates (SDI)
smtSgroup Subscript (SMT)
representation
cap1Cap atom 1
end_atom1End atom 1
end_atom2End atom 2
cap2Cap atom 2
cap1_is_undef=1 if cap1 is undefined (star)
cap2_is_undef=1 if cap2 is undefined (star)
alistList of atoms in the unit (SAL)
blistBonds in the unit as list [atom1, atom2; atom1, atom2,..] for crossing bonds (S)
maxbkbondsMax (allocd) number of frame_shift involved bonds
nbkbondsNumber of bkbonds in CRU main chain bkbonds are [breakable at possible frame shift] backbone bonds in between "left" end_atom1 and "right" end_atom2 ends (they may be only single-order non-intraring bonds)
bkbondsList of [breakable] backbone bonds [(a1,a2), (a3,a4),...]

◆ OAD_StructureEdits

Structure describing structure edits.

Parameters
del_atomArray of deleted atom indices
del_bondArray of deleted bond indices
new_bondArray of new bond indices
mod_bondArray of modified bond indices
mod_coordArray of modified coordinate indices
del_side_chainsFlag indicating whether to delete side chains

◆ OAD_V3000

typedef struct OAD_V3000 OAD_V3000

Structure describing v. 1.05 extended input supporting V3000; polymers.

Parameters
n_non_star_atomsNumber of non-star atoms
n_star_atomsNumber of star atoms
atom_index_origindex as supplied for atoms
atom_index_fin= index or -1 for star atom
n_sgroupscurrently, we do not use this.
n_3d_constraintscurrently, we do not use this.
n_collectionsnumber of collections
n_non_haptic_bondsnumber of non-haptic bonds
n_haptic_bondsnumber of haptic bonds
lists_haptic_bondshaptic_bonds[i] is pointer to int* which contains: bond_type, non-star atom number, nendpts, then endpts themselves
n_steabsnumber of enhanced stereo absolute configurations
lists_steabssteabs[k][0] - not used steabs[k][1] - number of members in collection steabs[k][2..] - member atom numbers
n_sterelnumber of enhanced stereo relative configurations
lists_sterelsterel[k][0] - n from "STERELn" tag sterel[k][1] - number of members in collection sterel[k][2..] - member atom numbers
n_steracnumber of enhanced stereo racemic configurations
lists_steracsterac[k][0] - n from "STERACn" tag sterac[k][1] - number of members in collection

◆ ORIG_ATOM_DATA

typedef struct tagOrigAtom ORIG_ATOM_DATA

Structure describing original atom data.

Parameters
atArray of input atoms
num_dimensionsNumber of dimensions (2D or 3D)
num_inp_bondsNumber of input bonds
num_inp_atomsNumber of input atoms
num_componentsNumber of components in the structure
bDisconnectSaltsFlag indicating whether salt disconnection is possible
bDisconnectCoordFlag indicating whether coordinate disconnection is needed
nCurAtLenArray with current atom counts per component
nOldCompNumberArray with old component numbers
nNumEquSetsNumber of found component equivalence sets
nEquLabelsArray with equivalence labels for atoms
nSortedOrderArray with sorted order of components
bSavedInINCHI_LIBArray indicating if saved in InChI library
bPreprocessedArray indicating if preprocessed
szCoordArray of molecular coordinates
polymerPointer to polymer data structure
v3000Pointer to V3000 data structure
valid_polymerFlag indicating if polymer data is valid
n_zyNumber of non-polymeric pseudoatoms (Zy)

◆ ORIG_STRUCT

Structure describing the original structure.

Parameters
num_atomsNumber of atoms
szAtomsString representation of atoms
szBondsString representation of bonds
szCoordString representation of coordinates
polymerPointer to polymer data structure (uses pointer copy from orig_inp_data, do not free after use!)
v3000Pointer to V3000 data structure (uses pointer copy from orig_inp_data, do not free after use!)
n_zyNumber of non-polymeric pseudoatoms (Zy)

◆ ST_CAP_FLOW

◆ STRUCT_FPTRS

typedef struct tagStructFptrs STRUCT_FPTRS

Structure describing file pointers for structures.

Parameters
fptrArray of file pointers to structures (input: fptr[cur_fptr] =file ptr to the struct to read; output: fptr[cur_fptr+1]=file ptr to the next struct or EOF)
len_fptrAllocated length of fptr
cur_fptrCurrent file pointer index (input: k-1 to read the kth struct, k = 1, 2, 3,...; left unchanged; struct number := cur_fptr+1)
max_fptrLength of the filled out portion of fptr

Function Documentation

◆ AllocateInfoAtomData()

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

Allocate memory for Info Atom Data structure.

Parameters
inf_at_dataPointer to the Info Atom Data structure
num_atomsNumber of atoms
num_componentsNumber of components
Returns
int Status code (1 if successful, 0 otherwise)

◆ bFoundFeature()

int bFoundFeature ( inp_ATOM at,
int  num_atoms 
)

Check if a feature is found in the input atoms ???

Parameters
atArray of input atoms
num_atomsNumber of input atoms
Returns
int Status code
+ Here is the caller graph for this function:

◆ bHasMetalAtom()

int bHasMetalAtom ( ORIG_ATOM_DATA orig_inp_data)

Check if there is a metal atom in the original atom data.

Parameters
orig_inp_dataPointer to original atom data structure
Returns
int Status code
+ 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 
)

Check if metals may be disconnected in the original atom data.

Parameters
orig_inp_dataPointer to original atom data structure
bCheckMetalValenceFlag indicating whether to check metal valence
bTautFlagsDonePointer to tautomeric flags done
Returns
int Status code
+ 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 
)

Create a Comp Atom Data structure.

Parameters
inp_at_dataPointer to the Comp Atom Data structure
num_atomsNumber of atoms
num_componentsNumber of components
bIntermediateTautFlag for intermediate tautomer
Returns
int Status code (1 if successful, 0 otherwise)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateInfAtom()

inf_ATOM * CreateInfAtom ( int  num_atoms)

Create/allocate a Inf Atom structure.

Parameters
num_atomsNumber of atoms
Returns
inf_ATOM* Pointer to the created Inf Atom structure

◆ CreateInfoAtomData()

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

Create a Info Atom Data structure.

Parameters
inf_at_dataPointer to the Info Atom Data structure
num_atomsNumber of atoms
num_componentsNumber of components
Returns
int Status code (1 if successful, 0 otherwise)

◆ CreateInpAtom()

inp_ATOM * CreateInpAtom ( int  num_atoms)

Create/allocate a Inp Atom structure.

Parameters
num_atomsNumber of atoms
Returns
inp_ATOM* Pointer to the created Inp Atom structure
+ 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 
)

Create a Inp Atom Data structure.

Parameters
inp_at_dataPointer to the Inp Atom Data structure
num_atomsNumber of atoms
create_at_fixed_bondsFlag to create fixed bonds
Returns
int Status code (1 if successful, 0 otherwise)
+ 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 
)

Create original input data from molfile.

Parameters
inp_fileInput file stream
orig_at_dataPointer to original atom data structure to be filled
bMergeAllInputStructuresFlag indicating whether to merge all input structures
bGetOrigCoordFlag indicating whether to get original coordinates
bDoNotAddHFlag indicating whether to avoid adding hydrogens
treat_polymersFlag indicating how to treat polymers
treat_NPZzFlag indicating how to treat non-polymeric Zz atoms
pSdfLabelPointer to SDF label
pSdfValuePointer to SDF value
lSdfIdPointer to SDF ID
lMolfileNumberPointer to molfile number
pInpAtomFlagsPointer to input atom flags
errPointer to error code
pStrErrPointer to error string
bNoWarningsFlag indicating whether to suppress warnings
Returns
int Status code
+ 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 
)

Disconnect metals in the original atom data.

Parameters
orig_inp_dataPointer to original atom data structure
bCheckMetalValenceFlag indicating whether to check metal valence
bTautFlagsDonePointer to tautomeric flags done
Returns
int Status code
+ 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 
)

Disconnect salts in the original atom data.

Parameters
orig_inp_dataPointer to original atom data structure
bDisconnectFlag indicating whether to disconnect salts
Returns
int Status code
+ 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 
)

Duplicate Info Atom Data structure.

Parameters
inf_at_data_toPointer to the destination Info Atom Data structure
inf_at_data_fromPointer to the source Info Atom Data structure
Returns
int Status code (1 if successful, 0 otherwise)

◆ fix_odd_things()

int fix_odd_things ( int  num_atoms,
inp_ATOM at,
int  bFixBug,
int  bFixNonUniformDraw 
)

Fix odd things in the input atoms.

Parameters
num_atomsNumber of input atoms
atArray of input atoms
bFixBugFlag indicating whether to fix bugs
bFixNonUniformDrawFlag indicating whether to fix non-uniform drawing
Returns
int Status code
+ 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 
)

Fix adjacent radicals in the input atoms.

Parameters
num_inp_atomsNumber of input atoms
atArray of input atoms
Returns
int Status code
+ Here is the caller graph for this function:

◆ FixUnkn0DStereoBonds()

int FixUnkn0DStereoBonds ( inp_ATOM at,
int  num_at 
)

Fix unknown stereo bonds in the input atoms.

Parameters
atPointer to the atom data
num_atPointer to the number of atoms
Returns
int Number of fixed stereo bonds
+ Here is the caller graph for this function:

◆ FreeCompAtomData()

void FreeCompAtomData ( COMP_ATOM_DATA inp_at_data)

Free composite atom data.

Parameters
inp_at_dataPointer to composite atom data structure
+ 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 
)

Free extended original atom data (polymers and V3000)

Parameters
pdPointer to polymer data structure
v3kPointer to V3000 data structure
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FreeInfAtom()

void FreeInfAtom ( inf_ATOM **  at)

Free information atom array (same as FreeInpAtom)

Parameters
atPointer to information atom array

◆ FreeInfoAtomData()

void FreeInfoAtomData ( INF_ATOM_DATA inf_at_data)

Free information atom data.

Parameters
inf_at_dataPointer to information atom data structure

◆ FreeInpAtom()

void FreeInpAtom ( inp_ATOM **  at)

Free input atom array.

Parameters
atPointer to input atom array
+ Here is the caller graph for this function:

◆ FreeInpAtomData()

void FreeInpAtomData ( INP_ATOM_DATA inp_at_data)

Free input atom data.

Parameters
inp_at_dataPointer to input atom data structure
+ 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)

Free original atom data.

Parameters
orig_at_dataPointer to original atom data structure
+ 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 
)

Convert InChI representation to original atom data.

Parameters
infileInput file stream
orig_at_dataPointer to original atom data structure to be filled
bMergeAllInputStructuresFlag indicating whether to merge all input structures
bGetOrigCoordFlag indicating whether to get original coordinates
bDoNotAddHFlag indicating whether to avoid adding hydrogens
vABParityUnknownFlag indicating whether to treat vAB parity as unknown
nInputTypeInput type
pSdfLabelPointer to SDF label
pSdfValuePointer to SDF value
lSdfIdPointer to SDF ID
pInpAtomFlagsPointer to input atom flags
errPointer to error code
pStrErrPointer to error string
Returns
int Status code
+ 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 
)

Mark disconnected components in the original atom data.

Parameters
orig_at_dataPointer to original atom data structure
bProcessOldCompNumbersFlag indicating whether to process old component numbers
Returns
int Status code
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MySleep()

void MySleep ( unsigned long  ms)

Sleep for a specified amount of time.

Parameters
msMilliseconds to sleep

◆ 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 
)

Collect backbone atoms from a polymer unit.

Parameters
at_dataPointer to the original atom data
naThe number of atoms
alistArray of atom indices
end_atom1The first end atom
end_atom2The second end atom
nbkatomsPointer to the number of backbone atoms
bkatomsPointer to the array of backbone atoms
errPointer to the error status
pStrErrPointer to the error string
+ 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 
)

Collect backbone bonds from a polymer unit.

Parameters
at_dataPointer to the original atom data
naThe number of atoms
alistArray of atom indices
end_atom1The first end atom
end_atom2The second end atom
nbkbondsPointer to the number of backbone bonds
bkbondsPointer to the array of backbone bonds
errPointer to the error status
pStrErrPointer to the error string
+ 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 
)

Find reachable atoms from a given start atom.

Parameters
orig_at_dataPointer to the original atom data
start_atomThe starting atom
nforbidden_bondsThe number of forbidden bonds
forbidden_bondsArray of forbidden bonds
n_reachablePointer to the number of reachable atoms
reachablePointer to the array of reachable atoms
errPointer to the error status
pStrErrPointer to the error string
Returns
int Status code
+ 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 
)

Merge components and recreate original atom data.

Parameters
orig_OrigAtomDataPointer to original atom data structure
curr_InpAtomDataPointer to current input atom data structure
num_componentsNumber of components
errcodePointer to error code
+ 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 
)

Underivatize the original atom data (main underivatization procedure)

Parameters
icPointer to INCHI_CLOCK structure
pCGPointer to CANON_GLOBALS structure
orig_inp_dataPointer to original atom data structure
bOutputSdfFlag indicating whether to output SDF
bOutputReportFlag indicating whether to output report
pSdfValuePointer to SDF value
Returns
int Status code
+ 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 
)

Compare backbone bonds seniority (for sorting SRU cyclizing bonds (PS=='frame-shift') in descending order)

Parameters
b1Pointer to first backbone bond
b2Pointer to second backbone bond
apropsPointer to atom properties structure
Returns
int Comparison result (-1 if b1 < b2, 0 if equal, 1 if b1 > b2)
+ 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 
)

Compare ranks of two atoms (compare seniority of two atoms in polymer SRU)

Parameters
atom1Index of the first atom
atom2Index of the second atom
apropsPointer to atom properties structure
Returns
int Comparison result
+ 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 
)

Cyclize closeable units in the original atom data.

Parameters
orig_at_dataPointer to original atom data structure
use_zzFlag indicating whether to use Zz atoms
pStrErrPointer to error string
bNoWarningsFlag indicating whether to suppress warnings
Returns
int Status code
+ 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)

Debug trace for polymer data structure (print the whole polymer data)

Parameters
pPointer to polymer data structure
+ 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 
)

Find backbones in the original atom data.

Parameters
where_to_lookPointer to original atom data structure
composite_norm_dataPointer to composite atom data structure
errPointer to error code
pStrErrPointer to error string
+ 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 
)

Find ring systems in the polymer data.

Parameters
pdPointer to polymer data structure
atArray of input atoms
natNumber of input atoms
num_inp_bondsPointer to number of input bonds
num_ring_sysPointer to number of ring systems found
size_ring_sysPointer to size of ring systems found
startStarting atom index
Returns
int Status code
+ 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)

Free polymer data structure.

Parameters
pPointer to polymer data structure
+ 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)

Get polymer representation type.

Parameters
pPointer to polymer data structure
Returns
int Polymer representation type (NO_POLYMER, POLYMER_REPRESENTATION_SOURCE_BASED, POLYMER_REPRESENTATION_STRUCTURE_BASED, POLYMER_REPRESENTATION_MIXED,POLYMER_REPRESENTATION_UNRECOGNIZED)
+ 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 
)

Check if the first atom has a lower rank than the second atom (check seniority of two atoms in polymer SRU)

Parameters
atom1Index of the first atom
atom2Index of the second atom
apropsPointer to atom properties structure
Returns
int 1 if atom1 has a lower rank than atom2, 0 otherwise
+ 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 
)

Prepare CRU edits for polymer data structure (prepare CRU fold edits as suggested by the strings with preliminary generated interim (1.05+ flavoured) InChI and AuxInfo)

Parameters
orig_at_dataPointer to original atom data structure
sinchi_noeditsPointer to InChI string without edits
saux_noeditsPointer to auxiliary InChI string without edits
sinchiPointer to InChI string with edits
sauxPointer to auxiliary InChI string with edits
edPointer to structure edits to be filled
Returns
int Status code
+ 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 
)

Prepare frame shift edits for polymer data structure (prepare frame shift edits as suggested by the strings with preliminary generated interim (1.05+ flavoured) InChI and AuxInfo)

Parameters
orig_at_dataPointer to original atom data structure
sinchiPointer to InChI string with edits
sauxPointer to auxiliary InChI string with edits
edPointer to structure edits to be filled
Returns
int Status code
+ 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 
)

Prepare working set for polymer processing (replace original atom numbers in polymer data with (canonical num + 1))

Parameters
pPointer to polymer data structure
cano_numsPointer to canonical numbers array
compnt_numsPointer to component numbers array
units2Pointer to array of polymer units (a copy of original polymer units with updated atom numbers)
unumPointer to number of polymer units
Returns
int Status code
+ 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 
)

Set atom properties for the polymer data.

Parameters
pdPointer to polymer data structure
atArray of input atoms
natNumber of input atoms
num_inp_bondsPointer to number of input bonds
apropsPointer to atom properties structure
cano_numsPointer to canonical numbers array
+ 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 
)

Smartly reopen cyclized units in the original atom data (open pre-cyclized CRUs appropriately (i.e., make frame shift))

Parameters
pPointer to polymer data structure
atPointer to input atom data
natNumber of input atoms
num_inp_bondsPointer to number of input 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 
)

Compare two polymer units based on their atom lists.

Parameters
u1Pointer to the first polymer unit
u2Pointer to the second polymer unit
Returns
int comparison result (-1, 0, 1)

◆ OAD_PolymerUnit_CompareAtomListsMod()

int OAD_PolymerUnit_CompareAtomListsMod ( OAD_PolymerUnit u1,
OAD_PolymerUnit u2 
)

Compare two polymer units based on their atom lists with modifications.

Parameters
u1Pointer to the first polymer unit
u2Pointer to the second polymer unit
Returns
int comparison result (-1, 0, 1)
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_CreateCopy()

OAD_PolymerUnit * OAD_PolymerUnit_CreateCopy ( OAD_PolymerUnit u)

Create a copy of a polymer unit.

Parameters
uPointer to the original polymer unit
Returns
OAD_PolymerUnit* Pointer to the new polymer unit
+ 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)

Debug trace for a polymer unit (print the whole polymer unit)

Parameters
unitPointer to the polymer 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 
)

Collect high-order backbone bonds from a polymer unit.

Parameters
unitPointer to the polymer unit
orig_at_dataPointer to the original atom data
composite_norm_dataPointer to the composite atom data
errPointer to the error status
pStrErrPointer to the error string
+ 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 
)

Collect backbone bonds from a polymer unit and delist intra-ring backbone bonds.

Parameters
unitPointer to the polymer unit
orig_at_dataPointer to the original atom data
errPointer to the error status
pStrErrPointer to the error string
+ 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 
)

Find the ends and caps of a polymer unit.

Parameters
unitPointer to the polymer unit
orig_at_dataPointer to the original atom data
end1Pointer to the first end atom
cap1Pointer to the first cap atom
cap1_is_undefPointer to the first cap atom's undefined status
end2Pointer to the second end atom
cap2Pointer to the second cap atom
cap2_is_undefPointer to the second cap atom's undefined status
errPointer to the error status
pStrErrPointer to the error string
+ 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)

Free a polymer unit.

Parameters
unitPointer to the polymer unit to free
+ 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 
)

Check if a polymer unit has a specific atom (e.g., metal)

Parameters
uPointer to the polymer unit
atPointer to the atom data
Returns
int Status code (1 if an atom is found, 0 otherwise)
+ 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 
)

Create a new polymer unit.

Parameters
maxatomsMaximum number of atoms
maxbondsMaximum number of bonds
idUnique identifier for the polymer unit
labelLabel for the polymer unit
typeType of the polymer unit
subtypeSubtype of the polymer unit
connConnection type
smtSMARTS pattern?
naNumber of atoms
alistPointer to the atom list
nbNumber of bonds
blistPointer to the bond list
nbkbondsNumber of backbone bonds
bkbondsPointer to the backbone bond list
Returns
OAD_PolymerUnit* Pointer to the new polymer unit
+ 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 
)

Order bond atoms and bonds themselves in a polymer unit.

Parameters
uPointer to the polymer unit
n_starsPointer to the number of stars
starsPointer to the array of star atoms
Returns
int
+ 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 
)

Prepare a polymer unit for frame shifting.

Parameters
unitPointer to the polymer unit
orig_at_dataPointer to the original atom data
errPointer to the error status
pStrErrPointer to the error string

◆ OAD_PolymerUnit_ReopenCyclized()

void OAD_PolymerUnit_ReopenCyclized ( OAD_PolymerUnit u,
inp_ATOM at,
OAD_AtProps aprops,
int  nat,
int *  num_inp_bonds 
)

Collect backbone atoms from a polymer unit.

Parameters
uPointer to the polymer unit
atPointer to the atom data
apropsPointer to the atom properties
natPointer to the number of atoms
num_inp_bondsPointer to the number of input 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 
)

Set the ends and caps of a polymer unit.

Parameters
unitPointer to the polymer unit
orig_at_dataPointer to the original atom data
errPointer to the error status
pStrErrPointer to the error string
+ 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 
)

Set reopening details for a polymer unit.

Parameters
uPointer to polymer unit
atArray of input atoms
Returns
int Number of breakable bonds
+ Here is the caller graph for this function:

◆ OAD_PolymerUnit_SortBackboneBonds()

void OAD_PolymerUnit_SortBackboneBonds ( OAD_PolymerUnit u,
OAD_AtProps aprops,
int *  bnum 
)

Collect backbone bonds from a polymer unit and sort them.

Parameters
uPointer to the polymer unit
apropsPointer to the atom properties
bnumPointer to the number of backbone bonds
+ 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 
)

Sort backbone bonds and set seniors for a polymer unit.

Parameters
uPointer to polymer unit
atArray of input atoms
apropsPointer to atom properties structure
senior_bondPointer to array to store senior bond indices
+ 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 
)

Unlink caps and connect end atoms of a polymer unit.

Parameters
unitPointer to the polymer unit
orig_at_dataPointer to the original atom data
errPointer to the error status
pStrErrPointer to the error string
+ 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)

Clear structure edits.

Parameters
edPointer to structure edits
+ 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)

Debug print structure edits.

Parameters
edPointer to structure edits
+ 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)

Initialize structure edits.

Parameters
edPointer to structure edits
Returns
int Error status code
+ 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 
)

Validate and sort out pseudo-element atoms in the original atom data.

Parameters
orig_at_dataPointer to original atom data structure
treat_polymersFlag indicating how to treat polymers (POLYMER_NO, POLYMER_MODERN, POLYMER_LEGACY, POLYMER_LEGACY_PLUS)
use_zzFlag indicating whether to use Zz atoms
errPointer to error code
pStrErrPointer to error string
+ 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 
)

Validate polymer and pseudo-element data in the original atom data.

Parameters
orig_at_dataPointer to original atom data structure
treat_polymersFlag indicating how to treat polymers
bNPZzFlag indicating whether to treat non-polymeric Zz atoms
pStrErrPointer to error string
bNoWarningsFlag indicating whether to suppress warnings
Returns
int Status code
+ 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 
)

Write original atom data to SD file.

Parameters
inp_at_dataPointer to original atom data structure
fcbFile stream to write to
nameName of the structure
commentComment to include
bChiralFlagFlag indicating for chiral information
bAtomsDTFlag indicating how H isotopes (D/T) are represented in the SD output
szLabelSDF label
szValueSDF value
Returns
int Status code
+ 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 
)

Post-fix odd things in the input atoms (does nothing, returns 0)

Parameters
num_atomsNumber of input atoms
atArray of input atoms
Returns
int Status code
+ Here is the caller graph for this function:

◆ PrintFileName()

void PrintFileName ( const char *  fmt,
FILE *  out_file,
const char *  szFname 
)

Print the file name.

Parameters
fmtFormat string
out_fileOutput file pointer
szFnameFile name string
+ 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 
)

Reconcile all CML bond parities in the input atoms.

Parameters
atPointer to the atom data
num_atomsNumber of atoms
bDisconnectedFlag for disconnected atoms
Returns
int Status code
+ 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 
)

Remove ion pairs from the input atoms.

Parameters
num_atomsNumber of input atoms
atArray of input atoms
Returns
int Status code
+ 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 
)

Convert rings to chains in the original atom data.

Parameters
icPointer to INCHI_CLOCK structure
pCGPointer to CANON_GLOBALS structure
orig_inp_dataPointer to original atom data structure
Returns
int Status code or the number of ring cuts made
+ 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 
)

Unmark ring systems in the input atoms.

Parameters
atArray of input atoms
num_atomsNumber of input atoms
Returns
int Status code
+ Here is the caller graph for this function: