import os
import numpy as np
import rosetta as r
import random
r.init()
os.getcwd()
'/home/ajasja/notebooks'
pose = r.pose_from_sequence('A'*10)
scorefxn = r.get_fa_scorefxn()
#pmm = r.PyMOLMover(target_host="XXXXX")
pmm = r.PyMOLMover(target_host="localhost")
pose.set_psi(random.randint(1,10),(random.random()-0.5)*180)
pose.set_phi(random.randint(1,10),(random.random()-0.5)*180)
print scorefxn(pose)
pmm.apply(pose)
27.0474905598
pose.set_psi(5,-50)
print scorefxn(pose)
27.8830412834
#test the scoring
import time
import random
start = time.time()
minscore = +100000000
numrun=10000;
for i in xrange(numrun):
pose.set_psi(random.randint(1,10),(random.random()-0.5)*180)
pose.set_phi(random.randint(1,10),(random.random()-0.5)*180)
score = scorefxn(pose)
if score<minscore:
minscore=score
end = time.time()
elapsed = end - start
print "Time taken: ", elapsed, "seconds."
print "Min Score is: ", minscore
print "Time per run: ", elapsed*1000.0/numrun, "msec"
Time taken: 2.63420510292 seconds. Min Score is: 16.4718879927 Time per run: 0.263420510292 msec
#test only the loops
import time
import random
start = time.time()
minscore = +100000000
numrun=10000;
for i in xrange(numrun):
pass
random.randint(1,10); (random.random()-0.5)*180;
random.randint(1,10);score=(random.random()-0.5)*180;
#score = scorefxn(pose)
if score<minscore:
minscore=score
end = time.time()
elapsed = end - start
print "Time taken: ", elapsed, "seconds."
print "Min Score is: ", minscore
print "Time per run: ", elapsed*1000.0/numrun, "msec"
Time taken: 0.0392308235168 seconds. Min Score is: -89.9782554597 Time per run: 0.00392308235168 msec
r.mm_twist?