I'd like to support that. Feature request...

On Wed, Aug 21, 2013 at 12:29 PM, Tom Daff <tdaff@uottawa.ca> wrote:
Thanks for the quick reply!

> Easy question first: _ccdc_geom_bond_type  should not be a big problem. I
> do see what you are talking about. For example:
> http://www.rsc.org/suppdata/cc/c2/c2cc34714h/c2cc34714h.txt
> has "A" for aromatic. That is no problem.
> A preliminary attempt is at
> http://chemapps.stolaf.edu/jmol/zip/jmol-13.3.4_2013.08.20c.zip
> But, like others, that's for the default loading, not for a set of unit
> cells.

This is working great, thanks! I think there are a couple more ccdc bond
types that are defined for MIF files in the International Tables G which is
also copied out here:


> Harder question: unit cell vs molecular. Right now there is a filter
> "MOLECULAR" that basically means "Just give me a molecule, not a full unit
> cell." It's like loading a model from any other format, but here from a
> file.
> Tell me again what exactly you would like to see? Is it full bonding with
> any number of unit cells? Might be able to do that; have to think about
> Jmol appropriately or not handles bonding in CIF with some wariness. The
> overall idea is that if bonding is present, that might represent molecular
> structures, and we want a default load for that to be simply a molecule,
> not a unit cell showing odd fragments of molecule. It is a rather complex
> algorithm. Although we do not read the _geom_bond_site_symmetry fields, we
> do read these:
>       _geom_bond_atom_site_label_1
>       _geom_bond_atom_site_label_2
>       _geom_bond_distance
> Provided those are there, Jmol will "honor" them and do the bonding. Here
> are my notes regarding the algorithm:
>    * (1) If GEOM_BOND records are present, we (a) use them to generate
> bonds (b)
>    * add H atoms to bonds if necessary, and (c) turn off autoBonding
> ("hasBonds")
>    * (2) If MOLECULAR, then we (a) use {1 1 1} if lattice is not defined
> (b) use
>    * atomSetCollection.bonds[] to construct a preliminary molecule and
> connect
>    * as we go (c) check symmetry for connections to molecule in any one of
> the
>    * 26 (3x3) adjacent cells (d) move those atoms and their connected
> branch set
>    * (e) iterate as necessary to get all atoms desired (f) delete
>    * atoms (g) set all coordinates as Cartesians (h) remove all unit cell
>    * information.

I work with 3d periodic structures, for which I have all the bonding
explicitly specified in the cif. Specifically, what I hope to see is that
when I do `load "MIL-47.cif {2 2 2} `, it is the {2 2 2} representation with
the unit cell intact and with the bonding that has been defined in the
GEOM_BOND section. From my testing it seems that either the GEOM_BOND gets
used and there is no way to stop the unit cell being thrown out (without the
{2 2 2} or using filter = "molecular"); or using the unit cell causes the
autobonding routine to ignore the GEOM_BOND and connect only with distance
checks (autobond OFF results in no bonds). In most cases this is probably
fine, but since it is now possible to specify bond types, and I have some
close atoms that are not supposed to bond, it would be nice to be able to
force both GEOM_BOND and unit cell on.

Mostly I was curious as to whether I had missed an option somewhere that
enabled this. Having worked a bit with cifs I understand that supporting
everybody's particular use case is not always an option, but I thank you for
following up on this.


Introducing Performance Central, a new site from SourceForge and
AppDynamics. Performance Central is your source for news, insights,
analysis and resources for efficient Application Performance Management.
Visit us today!
Jmol-users mailing list

Robert M. Hanson
Larson-Anderson Professor of Chemistry
St. Olaf College
Northfield, MN

If nature does not answer first what we want,
it is better to take what answer we get.

-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900