drawing in 3D
User 870ab5b546
04-10-2006 15:09:43
If I have a structure in 3D, e.g. chair cyclohexane, and I add a bond to one of the existing atoms, the z-coordinate of the new atom appears to always be set to 0. At least, if I then rotate the molecule, it is clear that the new group is not in the proper 3D position. See the picture for an example. Right now, the only way to put the group in the proper position is to do a 3D minimization (which doesn't always give the preferred conformer) or to add explicit H atoms, then replace the H atoms with other atoms. This latter method works, but it's awkward.
I would like to see the new group be placed in the proper 3D position. It would require that you calculate the existing angles about the existing atom, find the xy position where the new atom is being placed, and then calculate a z coordinate such that the bond lengths and angles would be appropriate.
ChemAxon 7c2d26e5cf
05-10-2006 20:34:22
We will consider it.
ChemAxon 7c2d26e5cf
06-10-2006 16:24:14
We have add it to the feature request list.
User ef5e605ae6
20-02-2007 12:02:41
The problem is probably only that the z coordinate of the new atom is zero if you add it in a very special way. Instead of clicking, you probably dragged the mouse starting from the new atom position towards an existing atom, then released the button over that atom. I fixed this bug, the new atom will have the same z coordinate as the other atom (instead of 0).
User 870ab5b546
20-02-2007 13:44:47
It should have a different z coordinate from the originating atom. The bond is coming from the ring toward the viewer, so the z coordinate should be larger.
User ef5e605ae6
20-02-2007 14:22:19
Please try the bugfix before requesting something much more complicated. (We will have an alpha release in the near future, maybe today.)
By dragging, you can only draw in the plane of the screen. In the general case, it is the best choice in 3D when both x and y coordinates are fixed. If you want something "more 3D", then the best we can do is to solve the equation (x-x_0)^2+(y-y_0)^2+(z-z_0)^2 = l_bond^2 for z. However, it is still not the "proper position" because the proper position is usually impossible if x and y are fixed. Only click drawing could be made smarter.
User 870ab5b546
20-02-2007 14:41:38
I see now in Marvin 4.2.0alpha3, clicking on some C atoms of chair cyclohexane does indeed put the new C in the proper equatorial position, but clicking on others does not. Try clicking on C2 in this:
Code: |
<?xml version="1.0" ?>
<MDocument>
<propertyList>
<property dictRef="viewEulerAngles" title="viewEulerAngles">
<array size="3" dataType="xsd:double">-2.2068470968921226 0.8961301235500072 -0.3236905910872175</array>
</property>
</propertyList>
<MChemicalStruct>
<molecule molID="m1">
<atomArray
atomID="a1 a2 a3 a4 a5 a6"
elementType="C C C C C C"
x3="-0.5506813707742395 -0.010765682857237764 1.5407656828484777 2.080681370789372 1.5407656993113912 -0.010765699312840736"
y3="1.43953400722548 -0.015225471842978249 -0.03934245151101335 0.7242127190466937 2.17897225539441 2.2030892097037484"
z3="0.005133469968804838 -0.036638319630794454 0.005133514382716706 1.24410628491611 1.2858780783124397 1.244106288166554"
/>
<bondArray>
<bond atomRefs2="a1 a2" order="1" />
<bond atomRefs2="a1 a6" order="1" />
<bond atomRefs2="a2 a3" order="1" />
<bond atomRefs2="a3 a4" order="1" />
<bond atomRefs2="a4 a5" order="1" />
<bond atomRefs2="a5 a6" order="1" />
</bondArray>
</molecule>
</MChemicalStruct>
</MDocument> |
However, clicking on C1 or C3 has the desired behavior.
Also, click again on the same ring atom to put the fourth bond in, and either the whole ring distorts without adding another bond, or the fourth CH3 group goes off in a totally bizarre direction, not axial. Try clicking twice on C1 in the structure above.
User ef5e605ae6
20-02-2007 16:32:19
Yes, click drawing could be improved. However, it is only part of full 3D sketching. We already have a related task on our list with low priority. (bond length angle/length/torsion setting)
User ef5e605ae6
21-02-2007 15:34:59
We are considering your request. However, there is an opinion that improving 3D sketching in MarvinSketch became unnecessary since MarvinSpace is available from the View menu. If you open a MarvinSpace window, then you can see anything you draw in 2D in the proper 3D position. Do you know about this feature?
User 870ab5b546
21-02-2007 18:32:27
In Marvin 4.2.0alpha3, I drew this:
Code: |
<?xml version="1.0" ?>
<MDocument>
<propertyList>
<property dictRef="viewEulerAngles" title="viewEulerAngles">
<array size="3" dataType="xsd:double">-0.8555352471128003 -0.9466044360639524 -1.2088293873328697</array>
</property>
</propertyList>
<MChemicalStruct>
<molecule molID="m1">
<propertyList>
</propertyList>
<atomArray
atomID="a1 a2 a3 a4 a5 a6 a7 a8"
elementType="C C C C C C C C"
x3="-0.5506813707742395 -0.010765682857237764 1.5407656828484786 2.0806813707893728 1.5407656993113914 -0.010765699312840092 3.60767667469044 2.4298848860049"
y3="1.43953400722548 -0.015225471842978249 -0.039342451511013905 0.7242127190466935 2.1789722553944095 2.203089209703748 0.5244995700952919 3.4363771511433776"
z3="0.005133469968804838 -0.036638319630794454 0.005133514382717146 1.24410628491611 1.2858780783124402 1.2441062881665543 1.24410628491611 1.2858780783124402"
/>
<bondArray>
<bond atomRefs2="a1 a2" order="1" />
<bond atomRefs2="a1 a6" order="1" />
<bond atomRefs2="a2 a3" order="1" />
<bond atomRefs2="a3 a4" order="1" />
<bond atomRefs2="a4 a5" order="1" />
<bond atomRefs2="a5 a6" order="1" />
<bond atomRefs2="a4 a7" order="1" />
<bond atomRefs2="a5 a8" order="1" />
</bondArray>
</molecule>
</MChemicalStruct>
</MDocument> |
I opened MarvinSpace, and the CH3 group was *still* in the wrong position. This is as it should have been, actually; I don't want MarvinSpace to change my structures unless I ask it to do. Are you saying that MarvinSpace can do a MM minimization of my structure? When I opened MarvinSpace from MarvinSketch, it opened just a viewer, and I couldn't edit the structure at all in MarvinSpace.
Anyway, I think you need MarvinSketch to put the CH3 groups in the correct place, regardless of what capabilities MarvinSpace has. I don't want to have to go back and forth between two different programs to draw a 3D structure properly. I think the clicking on a ring atom to put the new bond in the right place is a good tool, but it is buggy, and it needs to be fixed.
User ef5e605ae6
22-02-2007 09:44:10
No. MarvinSpace simply makes it unnecessary to draw anything in 3D by automatically calling Clean3D on the 2D structure you draw. I agree that it is not real 3D sketching. (It was not my idea to propose this alternative solution.) I try to convince the Clean3D guys to make a cleaning method for only one atom and its ligands.
ChemAxon 909aee4527
22-02-2007 10:46:10
Yes, MarvinSpace calls Clean3D automatically now, but it could be disabled.
To solve this I've just created a new option in the mspace popup menu so that this behaviour can be changed arbitrarily.
User 870ab5b546
22-02-2007 13:12:52
I guess what I am saying is the following:
(1) If the MarvinSketch structure is in 2D, the default should be for MarvinSpace to minimize it, but the user should be able to turn this feature off.
(2) If the MarvinSketch structure is already in 3D, the default should be for MarvinSpace *not* to minimize it, but the user should be able to turn this feature *on*. Currently, MarvinSpace does not appear to 3D-minimize a structure already in 3D -- see my post above.
(3) If MarvinSpace minimizes the structure, there should be an *option* to import the minimized structure back into MarvinSketch.
ChemAxon 909aee4527
22-02-2007 14:02:38
Regarding mspace, it is totally right.
To the original issue: I've tried the example you gave, and I haven't seen the problem first. But yes, it distorts the ring by adding bonds to some atoms.
It seems unpredictible, sometimes it is good for all atoms.
So I see now, until it is fixed it will neither be good with mspace.
User ef5e605ae6
22-02-2007 15:59:26
I talked with Odon (the Clean3D boss). He says that there are no 3D sketchers that work like the way you suggested. It is impossible to find the "proper 3D position" because there are more than one proper positions generally.
A possible solution: when you click on the atom, a window could appear with a list of possible ligand placements. (For example "equatorial" or "axial" when you click on an atom of cyclohexane.) However, it is not only difficult to implement (it could be a neverending path, for example the next request would be the visualization of possibilities), a pop up window is not even user friendly in my opinion.
Odon says that the usual way is to work with the hydrogenized structure. Then you could simply click the hydrogen you want to substitute.
User 870ab5b546
22-02-2007 16:13:08
Now hold on a second. Currently, if I draw cyclohexane, and I do a 3D minimization, and I click on one of the C atoms with the bond tool, more often than not, the new C atom goes into the equatorial orientation. So Marvin is already doing what Odon says it is not possible to do.
Now if I click on the C that already has three bonds, it is very easy to calculate where the fourth bond should go. But Marvin is not putting the fourth bond in the correct place.
Furthermore, when I click on some of the ring atoms, the new atom goes to the right place, but when I click on other ring atoms, it goes to a wrong place. There is no reason I can see for that kind of behavior.
User ef5e605ae6
22-02-2007 18:42:54
The solution we plan to implement:
1. make an automatic hydrogenization mode for 3D drawing
2. if hydrogens are not present, then call the existing method that calculates 3D explicit H positions and choose one of the positions randomly.
User ef5e605ae6
23-02-2007 14:21:08
1. is implemented, you will be able to try it in the next alpha release (4.2alpha5). If the molecule is hydrogenized, then newly added parts will also be hydrogenized automatically. Also improved structure merging to work well with hydrogenized structures.
User ef5e605ae6
01-03-2007 12:44:52
2. is also implemented but the new atom's position is not random. If there are n possible positions, then the one is chosen for which the sum of distance squares from the other atoms is maximal. It is the equatorial position in case of cyclohexane,
User 870ab5b546
01-03-2007 12:56:37
Sounds good. Looking forward to trying it.
ChemAxon 990acf0dec
23-04-2008 13:33:45
Hi Bob,
I reopened this forum topic, because we would like to deprecate a feature from Marvin: auto-adding of explicit hydrogens. Presently, if you select a structure on the canvas, then choose the Structure > Add Explicit Hydrogens option, the explicit hydrogens are added, but it does not effect the future drawing. On the other hand, if you use the same action globally (without any selection), Marvin switch to an auto-add explicit hydrogen mode, and automatically add the explicit hydrogens to anything which is being drawn, even to templates (except S-groups), which is not the expected behaviour for most of the users (making the drawing difficult after it), not to mention that it may result in some problems later (which I don't list here).
The auto-add explicit hydrogens feature was developed along with a feature that had originally been requested by you in this topic (i.e. putting the next carbon to a proper direction upon click-drawing), because it would have been useful for you as a workaround AFAIK. Since the original feature request is also implemented, instead of separating the auto-add and add algorithms in two menu-points, and repairing the bugs coming from it, we would like to deprecate this feature.
Do you have any objection? Do you use this feature for anything else now?
Thank you for your answer in advance.
Best regards,
Akos
User 870ab5b546
23-04-2008 19:09:07
I don't think I ever asked for an auto-add-hydrogens feature, and I have no problem with turning it off. I can see how it would be extremely annoying. If someone wnats to add explicit H atoms, they can go to the trouble of drawing them in themselves or choosing the procedure from a menu.
ChemAxon 990acf0dec
24-04-2008 05:51:37
Thanks! We deprecate it then.