Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port InCHI functions #8

Open
maneetgoyal opened this issue Jun 6, 2021 · 9 comments
Open

Port InCHI functions #8

maneetgoyal opened this issue Jun 6, 2021 · 9 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@maneetgoyal
Copy link
Contributor

maneetgoyal commented Jun 6, 2021

API Porting Status

We are slowly working towards exposing all the InCHI functions. PRs welcome.

A. Generation of InChI from structure

  • GetINCHI | int INCHI_DECL GetINCHI(inchi_Input *inp, inchi_Output *out)
  • GetINCHIEx
  • FreeINCHI
  • Free_inchi_Input
  • Get_inchi_Input_FromAuxInfo
  • GetStdINCHI
  • FreeStdINCHI
  • Free_std_inchi_Input
  • Get_std_inchi_Input_FromAuxInfo

B. Generation of InChI from structure, step-by-step way

  • INCHIGEN_Create
  • INCHIGEN_Setup
  • INCHIGEN_DoNormalization
  • INCHIGEN_DoCanonicalization
  • INCHIGEN_DoSerialization
  • INCHIGEN_Reset
  • INCHIGEN_Destroy
  • STDINCHIGEN_Create
  • STDINCHIGEN_Setup
  • STDINCHIGEN_DoNormalization
  • STDINCHIGEN_DoCanonicalization
  • STDINCHIGEN_DoSerialization
  • STDINCHIGEN_Reset
  • STDINCHIGEN_Destroy

C. Generation of InChI directly from Molfile

  • MakeINCHIFromMolfileText

D. Restoring structure from InChI or AuxInfo

  • GetStructFromINCHI
  • GetStructFromINCHIEx
  • FreeStructFromINCHI
  • GetStructFromStdINCHI
  • FreeStructFromStdINCHI

E. InChIKey

  • GetINCHIKeyFromINCHI
  • CheckINCHIKey
  • GetStdINCHIKeyFromStdINCHI

F. Test and utlity procedures

  • GetINCHIfromINCHI
  • CheckINCHI
  • GetStringLength

G. Status Objects

  • IXA_STATUS_Create
  • IXA_STATUS_Clear
  • IXA_STATUS_Destroy
  • IXA_STATUS_HasError
  • IXA_STATUS_HasWarning
  • IXA_STATUS_GetCount
  • IXA_STATUS_GetSeverity
  • IXA_STATUS_GetMessage

H. Molecule Objects

  • IXA_MOL_Create
  • IXA_MOL_Clear
  • IXA_MOL_Destroy
  • IXA_MOL_ReadMolfile
  • IXA_MOL_ReadInChI
  • IXA_MOL_SetChiral
  • IXA_MOL_GetChiral
  • IXA_MOL_CreateAtom
  • IXA_MOL_SetAtomElement
  • IXA_MOL_SetAtomAtomicNumber
  • IXA_MOL_SetAtomMass
  • IXA_MOL_SetAtomCharge
  • IXA_MOL_SetAtomRadical
  • IXA_MOL_SetAtomHydrogens
  • IXA_MOL_SetAtomX
  • IXA_MOL_SetAtomY
  • IXA_MOL_SetAtomZ
  • IXA_MOL_CreateBond
  • IXA_MOL_SetBondType
  • IXA_MOL_SetBondWedge
  • IXA_MOL_SetDblBondConfig
  • IXA_MOL_CreateStereoTetrahedron
  • IXA_MOL_CreateStereoRectangle
  • IXA_MOL_CreateStereoAntiRectangle
  • IXA_MOL_SetStereoParity
  • IXA_MOL_CreatePolymerUnit (new in v. 1.06)
  • IXA_MOL_GetPolymerUnitId (new in v. 1.06)
  • IXA_MOL_GetPolymerUnitIndex (new in v. 1.06)
  • IXA_MOL_SetPolymerUnit (new in v. 1.06)
  • IXA_MOL_GetNumAtoms
  • IXA_MOL_GetNumBonds
  • IXA_MOL_GetAtomId
  • IXA_MOL_GetBondId
  • IXA_MOL_GetAtomIndex
  • IXA_MOL_GetBondIndex
  • IXA_MOL_GetAtomNumBonds
  • IXA_MOL_GetAtomBond
  • IXA_MOL_GetCommonBond
  • IXA_MOL_GetBondAtom1
  • IXA_MOL_GetBondAtom2
  • IXA_MOL_GetBondOtherAtom (new in v. 1.06)
  • IXA_MOL_GetAtomElement
  • IXA_MOL_GetAtomAtomicNumber
  • IXA_MOL_GetAtomMass
  • IXA_MOL_GetAtomCharge
  • IXA_MOL_GetAtomRadical
  • IXA_MOL_GetAtomHydrogens
  • IXA_MOL_GetAtomX
  • IXA_MOL_GetAtomY
  • IXA_MOL_GetAtomZ
  • IXA_MOL_GetBondType
  • IXA_MOL_GetBondWedge
  • IXA_MOL_GetDblBondConfig
  • IXA_MOL_GetNumStereos
  • IXA_MOL_GetStereoId
  • IXA_MOL_GetStereoIndex
  • IXA_MOL_GetStereoTopology
  • IXA_MOL_GetStereoCentralAtom
  • IXA_MOL_GetStereoCentralBond
  • IXA_MOL_GetStereoNumVertices
  • IXA_MOL_GetStereoVertex
  • IXA_MOL_GetStereoParity

I. InChI Builder Objects

  • IXA_INCHIBUILDER_Create
  • IXA_INCHIBUILDER_SetMolecule
  • IXA_INCHIBUILDER_GetInChI
  • IXA_INCHIBUILDER_GetAuxInfo
  • IXA_INCHIBUILDER_GetLog
  • IXA_INCHIBUILDER_Destroy
  • IXA_INCHIBUILDER_SetOption
  • IXA_INCHIBUILDER_SetOption_Stereo
  • IXA_INCHIBUILDER_SetOption_Timeout
  • IXA_INCHIBUILDER_SetOption_Timeout_Milliseconds (new in v. 1.06)
  • IXA_INCHIBUILDER_CheckOption (new in v. 1.06)
  • IXA_INCHIBUILDER_CheckOption_Stereo (new in v. 1.06)
  • IXA_INCHIBUILDER_IXA_INCHIBUILDER_GetOption_Timeout_MilliSeconds (new in v. 1.06)

J. InChIKey Builder Objects

  • IXA_INCHIKEYBUILDER_Create
  • IXA_INCHIKEYBUILDER_SetInChI
  • IXA_INCHIKEYBUILDER_GetInChIKey
  • IXA_INCHIKEYBUILDER_Destroy
@maneetgoyal maneetgoyal added enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed labels Jun 6, 2021
@maneetgoyal
Copy link
Contributor Author

maneetgoyal commented Jun 6, 2021

How to port the functions?

  • This InCHI API manual can help in determining the function signature: InChI_API_Reference.pdf
  • The input/output types of the function signatures are already ported.
  • Simply functions need to be ported now. This tutorial can teach you all that is needed.
  • These ported functions reside in ffis.ts.
  • Wrap the functions such that end users don't need to worry about ref/ref-napi and expose them via src/api.ts.
  • Add appropriate unit tests in ffis.test.ts and api.test.ts.
  • Expose src/api.ts functions via server.ts as well.
  • Add JSDOc comments for the functions added to src/api.ts to showcase how to use them.

@maneetgoyal

This comment has been minimized.

@maneetgoyal

This comment has been minimized.

@maneetgoyal
Copy link
Contributor Author

maneetgoyal commented Aug 4, 2021

@qur786 In the first phase, try to port the following functions only:

D. Restoring structure from InChI or AuxInfo

  • GetStructFromINCHI
  • GetStructFromINCHIEx
  • FreeStructFromINCHI
  • GetStructFromStdINCHI
  • FreeStructFromStdINCHI

@maneetgoyal
Copy link
Contributor Author

@qur786 Please make the necessary updates now as mentioned during the morning call.

@qur786
Copy link
Contributor

qur786 commented Aug 23, 2021

@qur786 Please make the necessary updates now as mentioned during the morning call.

working on it sir

@maneetgoyal
Copy link
Contributor Author

@qur786 Update the task list in the above comment (#8 (comment)) also as mentioned earlier.

@qur786
Copy link
Contributor

qur786 commented Aug 24, 2021

@qur786 Update the task list in the above comment (#8 (comment)) also as mentioned earlier.

done sir

qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-data

Migrate vapor pressure data batch1
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-data-bath2

Migrate vapor pressure data batch2
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-daata-batch3

Add vapor pressure for compounds batch3
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-batch4

Add compounds to vapor-pressure batch4
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…thub.com:manufac-analytics/perry into sumitnegi7/#8-Migrate-vapor-pressure-data-batch5
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-data-batch5

Add compounds to vapor pressure batch5
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-data-batch6

Add compounds to vapor pressure batch6
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-data-batch7

Add some compounds to vapor pressure batch7
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…thub.com:manufac-analytics/perry into sumitnegi7/#8-Migrate-vapor-pressure-data-batch8
qur786 pushed a commit that referenced this issue Aug 24, 2021
…apor-pressure-data-batch8

Add compounds to vapor pressure batch8
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
qur786 pushed a commit that referenced this issue Aug 24, 2021
…ufac-analytics/perry into sumitnegi7/#8-vapor-pressure-batch10
qur786 pushed a commit that referenced this issue Aug 24, 2021
…ssure-batch10

Add compounds to vapor pressure batch10
qur786 pushed a commit that referenced this issue Aug 24, 2021
…ssure-batch-11

Migrate vapor pressure batch 11
qur786 added a commit that referenced this issue Aug 26, 2021
qur786 added a commit that referenced this issue Aug 26, 2021
qur786 added a commit that referenced this issue Aug 26, 2021
maneetgoyal added a commit that referenced this issue Aug 26, 2021
…nctions-Batch1-Phase2

Port Inchi Functions Phase 2
@maneetgoyal
Copy link
Contributor Author

@qur786 Here's the next batch of functions that should be ported in Milestone 2


A. Generation of InChI from structure

  • GetINCHI | int INCHI_DECL GetINCHI(inchi_Input *inp, inchi_Output *out)
  • GetINCHIEx
  • FreeINCHI
  • Free_inchi_Input
  • Get_inchi_Input_FromAuxInfo
  • GetStdINCHI
  • FreeStdINCHI
  • Free_std_inchi_Input
  • Get_std_inchi_Input_FromAuxInfo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants