partridgejiang / Kekule.js

A Javascript cheminformatics toolkit.
http://partridgejiang.github.io/Kekule.js
MIT License
250 stars 61 forks source link

False equivalency of some isomers (bicyclooctane) #86

Closed MrDarkHorse closed 5 years ago

MrDarkHorse commented 5 years ago

These shouldn't match right?

screen shot 2018-11-13 at 1 35 25 pm
partridgejiang commented 5 years ago

Thanks a lot for the feedback. The issue has now been fixed in commit e1767d7, please check the latest release files.

MrDarkHorse commented 5 years ago

Hrm... there still seems to be an issue here.

Even with your new code, I've now got a situation where 2 structures look the same, but don't match. I can provide the JSON for each of these structures.

screen shot 2018-12-17 at 5 45 50 pm
MrDarkHorse commented 5 years ago

First structure

{"coordPos2D":0,"coordPos3D":0,"defAutoScaleRefLength":44.94441010848846,"root":{"id":"o1","coordPos2D":0,"coordPos3D":0,"children":{"id":"o2","coordPos2D":0,"coordPos3D":0,"items":[{"__type__":"Kekule.Molecule","id":"m1","coordPos2D":0,"coordPos3D":0,"renderOptions":{"expanded":true,"__type__":"object"},"coord2D":{"x":175.65540205619692,"y":165.05259650156557,"__type__":"object"},"charge":0,"parity":null,"ctab":{"nodes":[{"__type__":"Kekule.Atom","id":"a1","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":119,"y":-39,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a2","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":81,"y":-21,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a3","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":53,"y":-59,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a4","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":77,"y":-98,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a5","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":119,"y":-80,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a6","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":160,"y":-22,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a7","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":184,"y":-60,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a8","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":160,"y":-98,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"}],"anchorNodes":[],"connectors":[{"__type__":"Kekule.Bond","id":"b1","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[0,1]},{"__type__":"Kekule.Bond","id":"b2","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[0,5]},{"__type__":"Kekule.Bond","id":"b3","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[1,2]},{"__type__":"Kekule.Bond","id":"b4","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[2,3]},{"__type__":"Kekule.Bond","id":"b5","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[3,4]},{"__type__":"Kekule.Bond","id":"b6","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[4,0]},{"__type__":"Kekule.Bond","id":"b7","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[5,6]},{"__type__":"Kekule.Bond","id":"b8","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[6,7]},{"__type__":"Kekule.Bond","id":"b9","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[7,4]}],"__type__":"Kekule.StructureConnectionTable"},"name":"Ibis migration"}],"__type__":"Kekule.ChemObjList"},"__type__":"Kekule.ChemSpaceElement"},"enableAutoId":true,"screenSize":{"x":1500,"y":1000,"__type__":"object"},"size2D":{"x":588.3108041123938,"y":172.86311580187868,"__type__":"object"},"__type__":"Kekule.ChemDocument"}

MrDarkHorse commented 5 years ago

second structure:

{"coordPos2D":0,"coordPos3D":0,"defAutoScaleRefLength":0.8,"root":{"id":"o1","coordPos2D":0,"coordPos3D":0,"children":{"id":"o2","coordPos2D":0,"coordPos3D":0,"items":[{"__type__":"Kekule.Molecule","id":"m1","coordPos2D":0,"coordPos3D":0,"renderOptions":{"expanded":true,"__type__":"object"},"coord2D":{"x":3.3678000463392035,"y":2.429925120060662,"__type__":"object"},"charge":0,"parity":null,"ctab":{"nodes":[{"__type__":"Kekule.Atom","id":"a1","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":-0.1761317039466901,"y":-0.657332467952727,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a2","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":0.5707326372510719,"y":-0.37063810831648647,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a3","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":0.528863872256716,"y":0.42826551948717295,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a4","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":-0.24387678877453833,"y":0.6353207555691895,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a5","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":-0.6795880167865587,"y":-0.03561569878715032,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a8","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":1.343473298282328,"y":-0.5776933443985031,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a9","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":1.7791845262943493,"y":0.09324310995783724,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"},{"__type__":"Kekule.Atom","id":"a10","coordPos2D":0,"coordPos3D":0,"coord2D":{"x":1.275728213454479,"y":0.714959879123414,"__type__":"object"},"charge":0,"parity":null,"isotopeId":"C"}],"anchorNodes":[],"connectors":[{"__type__":"Kekule.Bond","id":"b1","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[0,1]},{"__type__":"Kekule.Bond","id":"b2","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[1,2]},{"__type__":"Kekule.Bond","id":"b3","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[2,3]},{"__type__":"Kekule.Bond","id":"b4","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[3,4]},{"__type__":"Kekule.Bond","id":"b5","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[4,0]},{"__type__":"Kekule.Bond","id":"b7","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[1,5]},{"__type__":"Kekule.Bond","id":"b8","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[5,6]},{"__type__":"Kekule.Bond","id":"b9","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[6,7]},{"__type__":"Kekule.Bond","id":"b10","coordPos2D":0,"coordPos3D":0,"parity":null,"bondType":"covalent","bondOrder":1,"electronCount":2,"isInAromaticRing":false,"connectedObjs":[7,2]}],"__type__":"Kekule.StructureConnectionTable"}}],"__type__":"Kekule.ChemObjList"},"__type__":"Kekule.ChemSpaceElement"},"enableAutoId":true,"screenSize":{"x":1500,"y":1000,"__type__":"object"},"size2D":{"x":10.471794871794872,"y":3.076923076923077,"__type__":"object"},"__type__":"Kekule.ChemDocument"}

MrDarkHorse commented 5 years ago

I'm increasingly of the opinion that this change likely caused the regression. I will attempt to prove this tomorrow

https://github.com/partridgejiang/Kekule.js/commit/e1767d7dfa7e935025d56ba09bf35d8ab5bdb01d

partridgejiang commented 5 years ago

@MrDarkHorse Thanks a lot again. A rough fix has been made in commit 8401caa, it seems to solve the problem.

MrDarkHorse commented 5 years ago

Cool I'll run this against my own tests today. Thanks for the quick response!