mojaie / MolecularGraph.jl

Graph-based molecule modeling toolkit for cheminformatics
MIT License
192 stars 28 forks source link

V3000 format #60

Closed hhaensel closed 1 year ago

hhaensel commented 2 years ago

Are there any plans to support the V3000 format?

mojaie commented 2 years ago

Thank you for your interest. This library is mainly focused on handling molecular graphs, so the implementation of the input/output formats is not a high priority. I look forward to further development of I/O libraries such as Chemfiles.jl

hhaensel commented 2 years ago

I leave it open until I have added radical support. @mojaie if you want to do it, feel free, I'm currently busy with other things. It shouldn't be too difficult.

hhaensel commented 2 years ago

I studied your code on what you do with the RAD property and found that you store the value in multi. I've not understood what multi is used for, except that H atoms are displayed in the end. @mojaie is radical support still under construction? And should I also store the RAD in multi? Would be a oneliner...

mojaie commented 2 years ago

Atom.multiplicity is intended to store radical information

Multiplicity
https://en.wikipedia.org/wiki/Multiplicity_(chemistry)

so, mulitiplicity=1 usually means ground state, 2 means radical and 3 means biradical.

The specification for radical notation is not yet finalized.I would be happy if you let me know what you want to do with radicals and what specification is required in your usage.

Drawing radical symbols in 2D images seems to be more difficult than expected. We need better positioning algorithm for it (#25 is an example of work around).

hhaensel commented 2 years ago

I currently don't have any need for radical support. I just thought, I'd try to bring the V3000 import to a similar state as the normal mol file format.

mojaie commented 1 year ago

Now supports v3000 readers (v3 .mol, .sdf, .rd and .rxn files) cf3f890c79f99c7ab9f5e31c6059920f3357228c