reinitialize import rotkit fetch 1HP1, async=0 show_as cartoon, 1HP1 show_as sticks, 1HP1 and resn ATP set auto_zoom, off ###################### Make rotation axis ################# pseudoatom axisA, vdw=1.0 pseudoatom axisB, vdw=1.0 rotkit.toline("/1HP1//A/477/C","/1HP1//A/423/CG1","axisA","axisA",20) rotkit.toline("/1HP1//A/423/CG1","/1HP1//A/477/C","axisB","axisB",5) show spheres, axisA or axisB label axisA, "axisA" label axisB, "axisB" dist rotaxis, axisA, axisB color green, rotaxis set dash_width, 5 set dash_gap, 0 hide label, rotaxis ####################### Create rotate states of dye atoms ################### ##### First mutate, the mutate functions take 0.2 seconds, so we put in a refesh command to wait for everything is done rotkit.mutate("1HP1", chain="A", resi=308, target="CYS", mutframe=1) cmd.refresh() rotkit.mutate("1HP1", chain="A", resi=513, target="CYS", mutframe=1) cmd.refresh() ##### Create simulated dye movement atoms pseudoatom Donor, vdw=0.5 pseudoatom Acceptor, vdw=0.5 show spheres, Donor or Acceptor rotkit.toline("1HP1 and resi 308 and name CA","1HP1 and resi 308 and name SG","Donor","Donor",15.0) rotkit.toline("1HP1 and resi 513 and name CA","1HP1 and resi 513 and name SG","Acceptor","Acceptor",15.0) python Dye_ang_incr = 6 Donor_angle_range = range(0,359,Dye_ang_incr) Acceptor_angle_range = range(0,359,Dye_ang_incr) nrstates = len(Donor_angle_range)+1 Donor_states = 1 Acceptor_states = 1 for Donor_angle in Donor_angle_range: Donor_states += 1 Donor_angle_name="Donor_%s"%(Donor_angle) cmd.create(Donor_angle_name,"Donor") rotkit.rotateline("1HP1 and resi 308 and name CA","1HP1 and resi 308 and name CB",Donor_angle,Donor_angle_name) # Save it as states in Donor cmd.create("Donor",Donor_angle_name,1,Donor_states) cmd.create("Donor",Donor_angle_name,1,2*nrstates-Donor_states) cmd.group("All_Donors",Donor_angle_name) for Acceptor_angle in Acceptor_angle_range: Acceptor_states += 1 Acceptor_angle_name="Acceptor_%s"%(Acceptor_angle) cmd.create(Acceptor_angle_name,"Acceptor") rotkit.rotateline("1HP1 and resi 513 and name CA","1HP1 and resi 513 and name CB",Acceptor_angle,Acceptor_angle_name) # Save it as states in Acceptor cmd.create("Acceptor",Acceptor_angle_name,1,Acceptor_states) cmd.create("Acceptor",Acceptor_angle_name,1,2*nrstates-Acceptor_states) cmd.group("All_Acceptors",Acceptor_angle_name) python end disable All_Donors disable All_Acceptors cmd.create("Donor","All_Donors",1,1) cmd.create("Acceptor","All_Acceptors",1,1) mplay