> Looking through the source, it seems that the crash is due to automatic 
> O(N^2) bond inference on crystals. I was able to verify this by manually 
> parsing the cif and building an OBMol from scratch (just adding atoms).
> 

From the documentation for cif (and most formats):

Read Options e.g. -ab:
  v  Verbose CIF conversion
  s  Output single bonds only
  b  Disable bonding entirely
  B  Use bonds listed in CIF file from _geom_bond_etc records (overrides option 
b) 

So you can use -ab or -aB if you want to ignore ConnectTheDots.

> I don’t want to make a bond-disabling API change just to fix a corner case. 
> Instead, has there been any talk about making ConnectTheDots O(NlogN)? I feel 
> like it could be construed as a graph search problem.
> 

The biggest talk has largely centered on PerceiveBondOrders and Kekule / 
aromatic detection, which are usually slower than ConnectTheDots. If you'd like 
to take a stab at an improved implementation of ConnectTheDots (octree?) for 
larger systems, that would certainly be well received. Since the number of 
atoms is known before CTD is called, the method could choose implementations as 
needed.

Cheers,
-Geoff
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to