
Hi Eric, The scripts is not working.. It is giving me following error message. Is it possible to call the minimization step inside the script so that i can use the bcc charges? Thanks a lot for your help. chimera --nogui x.mol2 script.py Sorry: IndentationError: ('expected an indented block', ('script.py', 6, 8, 'residues = m.residues\n'))Opening x.mol2...Compiling script.py...Compiling script.py succeededExecuting script.py... Traceback (most recent call last): File "/usr/local/chimera/share/__main__.py", line 59, in ? value = chimeraInit.init(sys.argv) File "CHIMERA/share/chimeraInit.py", line 350, in init chimera.openModels.open(a, prefixableType=1) File "CHIMERA/share/chimera/__init__.py", line 1378, in open File "CHIMERA/share/chimera/__init__.py", line 865, in _openPython IndentationError: expected an indented block (script.py, line 6) Error while processing script.py: IndentationError: expected an indented block (script.py, line 6) (see reply log for Python traceback info) On Mon, Feb 4, 2008 at 4:00 PM, Eric Pettersen <pett@cgl.ucsf.edu> wrote:
Hi Snoze, I'm going to guess, like Elaine, that your purpose is to add partial charges. If your 1000 compounds are in one big mol2 file, here is a script that would do the job:
from chimera import openModels, Molecule from AddCharge import addNonstandardResCharges, estimateFormalCharge, ChargeError mols = openModels.list(modelTypes=[Molecule]) log = open("errlog", "w") for m in mols: residues = m.residues atoms = [a for r in residues for a in r.atoms] fc = estimateFormalCharge(atoms) try: addNonstandardResCharges(m.residues, fc) except ChargeError: print>>log, "Charge estimate (%d) or protonation wrong for %s (%s)" % ( fc, m.name, m.oslIdent()) from WriteMol2 import writeMol2 writeMol2(mols, "output.mol2") log.close()
If you save the above in a file named script.py and your 1000 compounds are in a file named input.mol2, then running:
chimera --nogui input.mol2 script.py
will produce a file named output.mol2 with the charges included. Any problems it had charging particular compounds will be saved in a file named errlog.
--Eric
Eric Pettersen
UCSF Computer Graphics Lab
On Feb 1, 2008, at 10:36 AM, Elaine Meng wrote: