<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><DIV>On Nov 14, 2007, at 12:20 AM, Jean Didier Pie Marechal wrote:</DIV><BLOCKQUOTE type="cite"><P>I am trying to get deeper into chimera and to develop a "simple" algorithm for drug optimization. Something flying in my mind for a while...</P><P>First though, I need to understand how to manipulate atom coordinates, bond angle and the general building. I went to the index of the chimera modules. My first objective is to generate a molecule from scratch and I thought that the molEdit module would provide me with the right tools to do so. </P><P>However, when trying to call this module by a chimera.molEdit.XXXX type of command, it seems that molEdit is not a correct object.</P></BLOCKQUOTE>Are you getting ImportError?  The chimera module only imports the submodules it needs at startup in order to try to reduce the startup time, and molEdit is one of the modules it does not import.  So if you have code like this:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>import chimera</DIV><DIV>chimera.molEdit.blah()</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>you will get an ImportError.  You either need to do this:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>import chimera.molEdit</DIV><DIV>chimera.molEdit.blah()</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>or this:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>from chimera.molEdit import blah</DIV><DIV>blah()<BR><BLOCKQUOTE type="cite"><P>Could you give me some pointers on the correct way to generate small ligand or how to add groups to a given one?</P></BLOCKQUOTE>molEdit certainly has the very basic functions for working on a molecule:<BR></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>addAtom:  add an atom to a molecule at a specific Point, optionally bonded to a specified atom</DIV><DIV>addDihedralAtom:  as above except positioned at a specific dihedral, angle, and bond length from 3 given Atoms/Points</DIV><DIV>addBond:  bond two atoms</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>However, the BuildStructure module also has some pertinent functions.  In it's __init__.py:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>placeHelium:  start a Molecule from scratch by placing a helium atom at the given Point</DIV><DIV>changeAtom:  change the element, number of bonds, and bond geometry of a given Atom.  Hydrogens will be added as necessary to fill out the bonds.  If the 'autoClose' keyword is true, then bonds will be made to existing Atoms if appropriate (e.g. closing a ring).</DIV><DIV>setBondLength:  pretty self-explanatory</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>It's too bad we're in a code freeze right now (due to the pending production release) because I've added some helpful functionality to BuildStructure:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>placeFragment:  start a Molecule with any of the rings systems seen here: <A href="http://en.wikipedia.org/wiki/Simple_aromatic_ring">http://en.wikipedia.org/wiki/Simple_aromatic_ring</A></DIV><DIV>changeAtom:  as above, but also returns a list of the Atoms that were changed/created</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>In the near future I anticipate adding the ability to generate structures from PubChem IDs or SMARTS strings to BuildStructure.  Anyway, I can send you a current version of BuildStructure if you would like to use that.  Otherwise, it should be available in the first daily build we make after the production release.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>--Eric</DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="5" style="font: 16.0px Helvetica"><SPAN class="Apple-converted-space">                       <SPAN class="Apple-converted-space"> </SPAN></SPAN>Eric Pettersen</FONT></P><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="5" style="font: 16.0px Helvetica"><SPAN class="Apple-converted-space">                       <SPAN class="Apple-converted-space"> </SPAN></SPAN>UCSF Computer Graphics Lab</FONT></P><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="5" style="font: 16.0px Helvetica"><SPAN class="Apple-converted-space">                        </SPAN><A href="http://www.cgl.ucsf.edu">http://www.cgl.ucsf.edu</A></FONT></P><BR class="Apple-interchange-newline"></SPAN> </DIV><BR></BODY></HTML>