[chimera-dev] Molecular Editing
Eric Pettersen
pett at cgl.ucsf.edu
Wed Nov 14 12:11:25 PST 2007
On Nov 14, 2007, at 12:20 AM, Jean Didier Pie Marechal wrote:
> 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...
>
> 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.
>
> However, when trying to call this module by a chimera.molEdit.XXXX
> type of command, it seems that molEdit is not a correct object.
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:
import chimera
chimera.molEdit.blah()
you will get an ImportError. You either need to do this:
import chimera.molEdit
chimera.molEdit.blah()
or this:
from chimera.molEdit import blah
blah()
> Could you give me some pointers on the correct way to generate
> small ligand or how to add groups to a given one?
molEdit certainly has the very basic functions for working on a
molecule:
addAtom: add an atom to a molecule at a specific Point, optionally
bonded to a specified atom
addDihedralAtom: as above except positioned at a specific dihedral,
angle, and bond length from 3 given Atoms/Points
addBond: bond two atoms
However, the BuildStructure module also has some pertinent
functions. In it's __init__.py:
placeHelium: start a Molecule from scratch by placing a helium atom
at the given Point
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).
setBondLength: pretty self-explanatory
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:
placeFragment: start a Molecule with any of the rings systems seen
here: http://en.wikipedia.org/wiki/Simple_aromatic_ring
changeAtom: as above, but also returns a list of the Atoms that were
changed/created
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.
--Eric
Eric Pettersen
UCSF Computer Graphics Lab
http://www.cgl.ucsf.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-dev/attachments/20071114/0535a858/attachment.html>
More information about the Chimera-dev
mailing list