This is not a python solution, perhaps there is one, but what I did was to write a bash shell script to modify the python script changing the name of the model consecutively (might have to be modified for other shells):
# DOPE for c in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15; do sed 's/NAME/Model_'${c}'/g' model-DOPE.py > tmp.py; mod9v4 tmp.py ; echo "Model "${c}": ";grep 'DOPE' tmp.log >> Models_DOPE.dat; done
In the python script (model-DOPE.py in my case) replace the line mdl = complete_pdb(env, '1acb.pdb') with mdl = complete_pdb(env, 'NAME.pdb')
your previously built models should be named sequentially Model_01 to Model_15 (or the last one in your case), or change the regexp in the sed command above according to your file naming.
At the end you'll have a list of DOPE values in the file Models_DOPE.dat.
I want to use the 'DOPE' to do the filtering the docking structure of
thousands of proteins, and I want to do batch possessing, but the script can
only calculate one structure:
from modeller import *
from modeller.scripts import complete_pdb
# Read a model previously generated by Modeller's automodel class
mdl = complete_pdb(env, '1acb.pdb')
# Select all atoms in the first chain
atmsel = selection(mdl.chains[0])
score = atmsel.assess_dope()
I am not familiar with python, Could you tell me how to do the batch
processing in the above script?
Thank you very much!
-- 0 | Mauricio Carrillo Tripp, PhD / | Department of Molecular Biology, TPC6 0 | The Scripps Research Institute \ | 10550 North Torrey Pines Road
0 | La Jolla, California 92037 / | "> 0 | http://www.scripps.edu/~trippm