InChI
 
Loading...
Searching...
No Matches
ichirvr2.c File Reference
#include <stdlib.h>
#include <string.h>
#include "mode.h"
#include "ichister.h"
#include "ichirvrs.h"
#include "bcf_s.h"
+ Include dependency graph for ichirvr2.c:

Data Structures

struct  tagMobileHGroups
 
struct  tagMobileGroupList
 

Macros

#define FIX_BOND_ADD_ALLOC   128
 
#define INC_EDGE_LIST   16
 
#define INC_EDGE_LIST   16
 
#define INC_EDGE_LIST   16
 
#define IS_C(x)   (NO_VERTEX != x && pVA[x].cNumValenceElectrons == 4 && pVA[x].cPeriodicRowNumber == 1)
 

Typedefs

typedef struct tagMobileHGroups MOBILE_GR
 
typedef struct tagMobileGroupList MGROUPS
 

Functions

void CopyAt2St (inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms)
 
void CopySt2At (inp_ATOM *at, inp_ATOM_STEREO *st, int num_atoms)
 
int RestoreAtomConnectionsSetStereo (StrFromINChI *pStruct, int iComponent, int iAtNoOffset, INChI *pInChI, INChI *pInChIMobH)
 
int SetStereoBondTypeFor0DParity (inp_ATOM *at, int i1, int m1)
 
int SetStereoBondTypesFrom0DStereo (StrFromINChI *pStruct, INChI *pInChI)
 
int CopyBnsToAtom (StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bAllowZeroBondOrder)
 
int CheckBnsConsistency (StrFromINChI *pStruct, BN_STRUCT *pBNS, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int bNoRad)
 
int AddExplicitDeletedH (inp_ATOM *at, int jv, int num_at, int *iDeletedH, int *iH, int nNumDeletedH, int bTwoStereo)
 
int bFindCumuleneChain (inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, AT_NUMB nCumulene[], int nMaxLen)
 
int set_bond_type (inp_ATOM *at, AT_NUMB i1, AT_NUMB i2, int bType)
 
int set_cumulene_0D_parity (inp_ATOM *at, inp_ATOM_STEREO *st, int num_at, int idelH1, int i1, int i2, int idelH2, int parity, int len)
 
int set_atom_0D_parity (inp_ATOM *at, inp_ATOM_STEREO *st, int num_at, int num_deleted_H, int i1, int parity)
 
int MoveRadToAtomsAddCharges (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int forbidden_mask)
 
int AdjustTgroupsToForbiddenEdges2 (BN_STRUCT *pBNS, inp_ATOM *at, VAL_AT *pVA, int num_atoms, int forbidden_mask)
 
int RearrangePlusMinusEdgesFlow (BN_STRUCT *pBNS, BN_DATA *pBD, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int forbidden_edge_mask)
 
int IncrementZeroOrderBondsToHeteroat (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int MovePlusFromS2DiaminoCarbon (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int EliminateChargeSeparationOnHeteroatoms (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask, int forbidden_stereo_edge_mask)
 
int RestoreCyanoGroup (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int RestoreIsoCyanoGroup (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int FixMetal_Nminus_Ominus (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int RestoreNNNgroup (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int EliminateNitrogen5Val3Bonds (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int Convert_SIV_to_SVI (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int PlusFromDB_N_DB_O_to_Metal (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int MoveMobileHToAvoidFixedBonds (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int RemoveRadFromMobileHEndpoint (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int RemoveRadFromMobileHEndpointFixH (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 
int MoveChargeToMakeCenerpoints (BN_STRUCT *pBNS, BN_DATA *pBD, StrFromINChI *pStruct, inp_ATOM *at, inp_ATOM *at2, VAL_AT *pVA, ALL_TC_GROUPS *pTCGroups, int *pnNumRunBNS, int *pnTotalDelta, int forbidden_edge_mask)
 

Macro Definition Documentation

◆ FIX_BOND_ADD_ALLOC

#define FIX_BOND_ADD_ALLOC   128

◆ INC_EDGE_LIST [1/3]

#define INC_EDGE_LIST   16

◆ INC_EDGE_LIST [2/3]

#define INC_EDGE_LIST   16

◆ INC_EDGE_LIST [3/3]

#define INC_EDGE_LIST   16

◆ IS_C

#define IS_C (   x)    (NO_VERTEX != x && pVA[x].cNumValenceElectrons == 4 && pVA[x].cPeriodicRowNumber == 1)

Typedef Documentation

◆ MGROUPS

typedef struct tagMobileGroupList MGROUPS

◆ MOBILE_GR

typedef struct tagMobileHGroups MOBILE_GR

Function Documentation

◆ AddExplicitDeletedH()

int AddExplicitDeletedH ( inp_ATOM at,
int  jv,
int  num_at,
int *  iDeletedH,
int *  iH,
int  nNumDeletedH,
int  bTwoStereo 
)
+ Here is the caller graph for this function:

◆ AdjustTgroupsToForbiddenEdges2()

int AdjustTgroupsToForbiddenEdges2 ( BN_STRUCT pBNS,
inp_ATOM at,
VAL_AT pVA,
int  num_atoms,
int  forbidden_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bFindCumuleneChain()

int bFindCumuleneChain ( inp_ATOM at,
AT_NUMB  i1,
AT_NUMB  i2,
AT_NUMB  nCumulene[],
int  nMaxLen 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CheckBnsConsistency()

int CheckBnsConsistency ( StrFromINChI pStruct,
BN_STRUCT pBNS,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int  bNoRad 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Convert_SIV_to_SVI()

int Convert_SIV_to_SVI ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CopyAt2St()

void CopyAt2St ( inp_ATOM at,
inp_ATOM_STEREO st,
int  num_atoms 
)
+ Here is the caller graph for this function:

◆ CopyBnsToAtom()

int CopyBnsToAtom ( StrFromINChI pStruct,
BN_STRUCT pBNS,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int  bAllowZeroBondOrder 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CopySt2At()

void CopySt2At ( inp_ATOM at,
inp_ATOM_STEREO st,
int  num_atoms 
)
+ Here is the caller graph for this function:

◆ EliminateChargeSeparationOnHeteroatoms()

int EliminateChargeSeparationOnHeteroatoms ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask,
int  forbidden_stereo_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EliminateNitrogen5Val3Bonds()

int EliminateNitrogen5Val3Bonds ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FixMetal_Nminus_Ominus()

int FixMetal_Nminus_Ominus ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IncrementZeroOrderBondsToHeteroat()

int IncrementZeroOrderBondsToHeteroat ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveChargeToMakeCenerpoints()

int MoveChargeToMakeCenerpoints ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveMobileHToAvoidFixedBonds()

int MoveMobileHToAvoidFixedBonds ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MovePlusFromS2DiaminoCarbon()

int MovePlusFromS2DiaminoCarbon ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveRadToAtomsAddCharges()

int MoveRadToAtomsAddCharges ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int  forbidden_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PlusFromDB_N_DB_O_to_Metal()

int PlusFromDB_N_DB_O_to_Metal ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RearrangePlusMinusEdgesFlow()

int RearrangePlusMinusEdgesFlow ( BN_STRUCT pBNS,
BN_DATA pBD,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveRadFromMobileHEndpoint()

int RemoveRadFromMobileHEndpoint ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveRadFromMobileHEndpointFixH()

int RemoveRadFromMobileHEndpointFixH ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreAtomConnectionsSetStereo()

int RestoreAtomConnectionsSetStereo ( StrFromINChI pStruct,
int  iComponent,
int  iAtNoOffset,
INChI pInChI,
INChI pInChIMobH 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreCyanoGroup()

int RestoreCyanoGroup ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreIsoCyanoGroup()

int RestoreIsoCyanoGroup ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RestoreNNNgroup()

int RestoreNNNgroup ( BN_STRUCT pBNS,
BN_DATA pBD,
StrFromINChI pStruct,
inp_ATOM at,
inp_ATOM at2,
VAL_AT pVA,
ALL_TC_GROUPS pTCGroups,
int *  pnNumRunBNS,
int *  pnTotalDelta,
int  forbidden_edge_mask 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_atom_0D_parity()

int set_atom_0D_parity ( inp_ATOM at,
inp_ATOM_STEREO st,
int  num_at,
int  num_deleted_H,
int  i1,
int  parity 
)
+ Here is the caller graph for this function:

◆ set_bond_type()

int set_bond_type ( inp_ATOM at,
AT_NUMB  i1,
AT_NUMB  i2,
int  bType 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_cumulene_0D_parity()

int set_cumulene_0D_parity ( inp_ATOM at,
inp_ATOM_STEREO st,
int  num_at,
int  idelH1,
int  i1,
int  i2,
int  idelH2,
int  parity,
int  len 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetStereoBondTypeFor0DParity()

int SetStereoBondTypeFor0DParity ( inp_ATOM at,
int  i1,
int  m1 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetStereoBondTypesFrom0DStereo()

int SetStereoBondTypesFrom0DStereo ( StrFromINChI pStruct,
INChI pInChI 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function: