InChI
 
Loading...
Searching...
No Matches
runichi3.c File Reference
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <errno.h>
#include <limits.h>
#include <math.h>
#include <ctype.h>
#include "mode.h"
#include "ichitime.h"
#include "ichimain.h"
#include "ichi_io.h"
#include "mol_fmt.h"
#include "inchi_api.h"
#include "readinch.h"
#include "inchi_gui.h"
#include "inpdef.h"
#include "bcf_s.h"
+ Include dependency graph for runichi3.c:

Functions

static int OrigAtData_bCheckUnusualValences (ORIG_ATOM_DATA *orig_at_data, int bAddIsoH, char *pStrErrStruct, int bNoWarnings)
 
static void OAD_PolymerUnit_RemoveLinkFromCRUChain (int at1, int at2, int *nbonds, int **bonds)
 
int OrigAtData_Duplicate (ORIG_ATOM_DATA *new_orig_atom, ORIG_ATOM_DATA *orig_atom)
 
int PreprocessOneStructure (struct tagINCHI_CLOCK *ic, STRUCT_DATA *sd, INPUT_PARMS *ip, ORIG_ATOM_DATA *orig_inp_data, ORIG_ATOM_DATA *prep_inp_data)
 
int CreateCompositeNormAtom (COMP_ATOM_DATA *composite_norm_data, INP_ATOM_DATA2 *all_inp_norm_data, int num_components)
 
void OrigAtData_DebugTrace (ORIG_ATOM_DATA *d)
 
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.
 
int OAD_PolymerUnit_CompareAtomListsMod (OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
 Compare two polymer units based on their atom lists with modifications.
 
int OAD_PolymerUnit_CompareAtomLists (OAD_PolymerUnit *u1, OAD_PolymerUnit *u2)
 Compare two polymer units based on their atom lists.
 
int OAD_PolymerUnit_OrderBondAtomsAndBondsThemselves (OAD_PolymerUnit *u, int n_star_atoms, int *star_atoms)
 Order bond atoms and bonds themselves in a polymer unit.
 
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.
 
int UnMarkRingSystemsInp (inp_ATOM *at, int num_atoms)
 Unmark ring systems in the input atoms.
 
int OAD_Polymer_CyclizeCloseableUnits (ORIG_ATOM_DATA *orig_at_data, int treat_polymers, char *pStrErr, int bNoWarnings)
 Cyclize closeable units in the original atom data.
 
int OAD_PolymerUnit_HasMetal (OAD_PolymerUnit *u, inp_ATOM *at)
 Check if a polymer unit has a specific atom (e.g., metal)
 
void OAD_Polymer_Free (OAD_Polymer *pd)
 Free polymer data structure.
 
void OAD_PolymerUnit_UnlinkCapsAndConnectEndAtoms (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_inp_data, int *err, char *pStrErr)
 Unlink caps and connect end atoms of a polymer unit.
 
void OAD_PolymerUnit_FindEndsAndCaps (OAD_PolymerUnit *unit, ORIG_ATOM_DATA *orig_at_data, int *end1, int *cap1, int *cap1_is_star, int *end2, int *cap2, int *cap2_is_star, 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.
 
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))
 
int OrigAtData_RemoveHalfBond (int this_atom, int other_atom, inp_ATOM *at, int *bond_type, int *bond_stereo)
 
int OrigAtData_RemoveAtom (ORIG_ATOM_DATA *orig_at_data, int iatom)
 
int OrigAtData_RemoveBond (int this_atom, int other_atom, inp_ATOM *at, int *bond_type, int *bond_stereo, int *num_inp_bonds)
 
int OrigAtData_AddBond (int this_atom, int other_atom, inp_ATOM *at, int bond_type, int bond_stereo, int *num_bonds)
 
int OrigAtData_AddSingleStereolessBond (int this_atom, int other_atom, inp_ATOM *at, int *num_bonds)
 
int OrigAtData_IncreaseBondOrder (int this_atom, int other_atom, inp_ATOM *at)
 
int OrigAtData_DecreaseBondOrder (int this_atom, int other_atom, inp_ATOM *at)
 
void OAD_CollectFragmentBondsAndAtoms (ORIG_ATOM_DATA *orig_at_data, int nforbidden, int *forbidden_orig, int *n_fragbonds, int **fragbonds, int *n_fragatoms, int *fragatoms, int *err, char *pStrErr)
 
void OAD_Polymer_FindBackbones (ORIG_ATOM_DATA *at_data, COMP_ATOM_DATA *composite_norm_data, int *err, char *pStrErr)
 Find backbones in the original atom data.
 
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.
 
int OAD_CollectReachableAtoms (ORIG_ATOM_DATA *orig_at_data, int start_atom, int nforbidden_bonds, int *forbidden_bond_atoms, int *n_reachable, int *reachable, int *err, char *pStrErr)
 Find reachable atoms from a given start atom.
 
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 *at_data, int *err, char *pStrErr)
 Collect backbone bonds from a polymer unit and delist intra-ring backbone bonds.
 
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.
 
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_DebugTrace (OAD_PolymerUnit *u)
 Debug trace for a polymer unit (print the whole polymer unit)
 
void OAD_Polymer_DebugTrace (OAD_Polymer *p)
 Debug trace for polymer data structure (print the whole polymer data)
 
int OAD_Polymer_GetRepresentation (OAD_Polymer *p)
 Get polymer representation type.
 
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))
 
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_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_PolymerUnit_SortBackboneBonds (OAD_PolymerUnit *u, OAD_AtProps *aprops, int *bnum)
 Collect backbone bonds from a polymer unit and sort them.
 
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)
 
void OAD_ValidateAndSortOutPseudoElementAtoms (ORIG_ATOM_DATA *orig_at_data, int treat_polymers, int bNPZz, int *err, char *pStrErr)
 Validate and sort out pseudo-element atoms in the original atom data.
 
int Inp_Atom_GetBondType (inp_ATOM *at, int iatom1, int iatom2)
 

Function Documentation

◆ CreateCompositeNormAtom()

int CreateCompositeNormAtom ( COMP_ATOM_DATA composite_norm_data,
INP_ATOM_DATA2 all_inp_norm_data,
int  num_components 
)
+ Here is the call graph for this function:

◆ Inp_Atom_GetBondType()

int Inp_Atom_GetBondType ( inp_ATOM at,
int  iatom1,
int  iatom2 
)
+ Here is the caller graph for this function:

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

void OAD_CollectFragmentBondsAndAtoms ( ORIG_ATOM_DATA orig_at_data,
int  nforbidden,
int *  forbidden_orig,
int *  n_fragbonds,
int **  fragbonds,
int *  n_fragatoms,
int *  fragatoms,
int *  err,
char *  pStrErr 
)
+ Here is the call 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_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_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_RemoveLinkFromCRUChain()

void OAD_PolymerUnit_RemoveLinkFromCRUChain ( int  at1,
int  at2,
int *  nbonds,
int **  bonds 
)
static
+ Here is the caller graph for this function:

◆ 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_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_AddBond()

int OrigAtData_AddBond ( int  this_atom,
int  other_atom,
inp_ATOM at,
int  bond_type,
int  bond_stereo,
int *  num_bonds 
)
+ Here is the caller graph for this function:

◆ OrigAtData_AddSingleStereolessBond()

int OrigAtData_AddSingleStereolessBond ( int  this_atom,
int  other_atom,
inp_ATOM at,
int *  num_bonds 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OrigAtData_bCheckUnusualValences()

int OrigAtData_bCheckUnusualValences ( ORIG_ATOM_DATA orig_at_data,
int  bAddIsoH,
char *  pStrErrStruct,
int  bNoWarnings 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OrigAtData_DebugTrace()

void OrigAtData_DebugTrace ( ORIG_ATOM_DATA d)
+ Here is the caller graph for this function:

◆ OrigAtData_DecreaseBondOrder()

int OrigAtData_DecreaseBondOrder ( int  this_atom,
int  other_atom,
inp_ATOM at 
)
+ Here is the caller graph for this function:

◆ OrigAtData_Duplicate()

int OrigAtData_Duplicate ( ORIG_ATOM_DATA new_orig_atom,
ORIG_ATOM_DATA orig_atom 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OrigAtData_IncreaseBondOrder()

int OrigAtData_IncreaseBondOrder ( int  this_atom,
int  other_atom,
inp_ATOM at 
)
+ Here is the caller graph for this function:

◆ OrigAtData_RemoveAtom()

int OrigAtData_RemoveAtom ( ORIG_ATOM_DATA orig_at_data,
int  iatom 
)

◆ OrigAtData_RemoveBond()

int OrigAtData_RemoveBond ( int  this_atom,
int  other_atom,
inp_ATOM at,
int *  bond_type,
int *  bond_stereo,
int *  num_inp_bonds 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OrigAtData_RemoveHalfBond()

int OrigAtData_RemoveHalfBond ( int  this_atom,
int  other_atom,
inp_ATOM at,
int *  bond_type,
int *  bond_stereo 
)
+ Here is the caller graph for this function:

◆ PreprocessOneStructure()

int PreprocessOneStructure ( struct tagINCHI_CLOCK ic,
STRUCT_DATA sd,
INPUT_PARMS ip,
ORIG_ATOM_DATA orig_inp_data,
ORIG_ATOM_DATA prep_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 
)

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: