This is a read-only mirror of pymolwiki.org
Difference between revisions of "Super"
Jump to navigation
Jump to search
Line 42: | Line 42: | ||
<source lang="bash"> | <source lang="bash"> | ||
pymol -c pymol_rmsd_test.pml ; tail -n 1 rmsd_file.txt | pymol -c pymol_rmsd_test.pml ; tail -n 1 rmsd_file.txt | ||
+ | </source> | ||
+ | |||
+ | == Write rmsd to file and looping== | ||
+ | |||
+ | '''pymol_pymol_loop.sh''' | ||
+ | <source lang="bash"> | ||
+ | #!/bin/csh -f | ||
+ | set x = 1 | ||
+ | |||
+ | while ( $x <= 20 ) | ||
+ | set prot="energy_${x}.pdb" | ||
+ | pymol -c pymol_super.pml $prot | ||
+ | @ x = $x + 1 | ||
+ | end | ||
+ | </source> | ||
+ | |||
+ | |||
+ | '''pymol_super.pml''' | ||
+ | <source lang="python"> | ||
+ | reinitialize | ||
+ | import sys | ||
+ | |||
+ | python | ||
+ | prot1="XXXX" | ||
+ | prot2="YYYY_trimmed" | ||
+ | |||
+ | prot3=sys.argv[3] | ||
+ | #prot3="energy_54.pdb" | ||
+ | prot3name=prot3.split(".pdb")[0] | ||
+ | print prot3, prot3name | ||
+ | python end | ||
+ | |||
+ | cd /XXXXX | ||
+ | |||
+ | cmd.load("%s.pdb"%prot1) | ||
+ | cmd.load("%s.pdb"%prot2) | ||
+ | cmd.load("./ensemblesize2_numstruct100_20140115/%s"%prot3) | ||
+ | #show_as cartoon, all | ||
+ | |||
+ | align1=cmd.super("%s"%prot3name,"%s"%prot1) | ||
+ | print align1 | ||
+ | |||
+ | python | ||
+ | writefile=open("pymol_rmsd_file.txt","a") | ||
+ | writefile.write('%s %s '%(prot3name, prot1)) | ||
+ | writefile.write(' '.join('%s' % x for x in align1)) | ||
+ | writefile.write(' ') | ||
+ | python end | ||
+ | |||
+ | align2=cmd.super("%s"%prot3name,"%s"%prot2) | ||
+ | print align2 | ||
+ | |||
+ | python | ||
+ | writefile=open("pymol_rmsd_file.txt","a") | ||
+ | writefile.write('%s %s '%(prot3name, prot2)) | ||
+ | writefile.write(' '.join('%s' % x for x in align2)) | ||
+ | writefile.write('\n') | ||
+ | writefile.close() | ||
+ | python end | ||
+ | </source> | ||
+ | |||
+ | In terminal | ||
+ | <source lang="bash"> | ||
+ | chmod +x pymol_loop.sh | ||
+ | ./pymol_loop.sh | ||
</source> | </source> | ||
Revision as of 16:43, 23 January 2014
super aligns two selections. super is more robust and accurate than align. For syntax, see align.
Algorithm Details
super does a sequence-independent structure-based dynamic programming alignment followed by a series of refinement cycles intended to improve the fit by eliminating pairing with high relative variability (e.g. >2 standard deviations from the cycle's mean deviance).
Caveats
- If super ever tells you no matched atoms, then instead of
super p1, p2
try
super p1 & alt A+'', p2 & alt B+''
Write rmsd to file
pymol_rmsd_test.pml
reinitialize
fetch 1F9J, async=0
fetch 1YX5, async=0
extract 1F9J_A, 1F9J and chain A
extract 1YX5_B, 1YX5 and chain B
test=cmd.super("1F9J_A","1YX5_B")
python
writefile=open("rmsd_file.txt","a")
writefile.write(' '.join('%s' % x for x in test))
writefile.write('\n')
writefile.close()
python end
In terminal
pymol -c pymol_rmsd_test.pml ; tail -n 1 rmsd_file.txt
Write rmsd to file and looping
pymol_pymol_loop.sh
#!/bin/csh -f
set x = 1
while ( $x <= 20 )
set prot="energy_${x}.pdb"
pymol -c pymol_super.pml $prot
@ x = $x + 1
end
pymol_super.pml
reinitialize
import sys
python
prot1="XXXX"
prot2="YYYY_trimmed"
prot3=sys.argv[3]
#prot3="energy_54.pdb"
prot3name=prot3.split(".pdb")[0]
print prot3, prot3name
python end
cd /XXXXX
cmd.load("%s.pdb"%prot1)
cmd.load("%s.pdb"%prot2)
cmd.load("./ensemblesize2_numstruct100_20140115/%s"%prot3)
#show_as cartoon, all
align1=cmd.super("%s"%prot3name,"%s"%prot1)
print align1
python
writefile=open("pymol_rmsd_file.txt","a")
writefile.write('%s %s '%(prot3name, prot1))
writefile.write(' '.join('%s' % x for x in align1))
writefile.write(' ')
python end
align2=cmd.super("%s"%prot3name,"%s"%prot2)
print align2
python
writefile=open("pymol_rmsd_file.txt","a")
writefile.write('%s %s '%(prot3name, prot2))
writefile.write(' '.join('%s' % x for x in align2))
writefile.write('\n')
writefile.close()
python end
In terminal
chmod +x pymol_loop.sh
./pymol_loop.sh