[Chimera-users] command line mode

Eric Pettersen pett at cgl.ucsf.edu
Tue Feb 26 12:46:09 PST 2008


Hi Snoze,
	In the Python language, indentation is significant.  It seems you  
didn't preserve the indentation levels when you copied what I sent.   
In particular, I'm guessing that line 6 ("residues = m.residues") and  
all following lines lack indentation.  I have _attached_ a copy of  
the script so that when you use it the indentation will be correct.

--Eric

On Feb 26, 2008, at 12:24 PM, snoze pa wrote:

> 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 at 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
>                         http://www.cgl.ucsf.edu



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20080226/b0b26cd1/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: addCharges.py
Type: text/x-python-script
Size: 563 bytes
Desc: not available
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20080226/b0b26cd1/attachment.bin>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20080226/b0b26cd1/attachment-0001.html>


More information about the Chimera-users mailing list