vmd教程 forces-tutorial
1TCLFORCES
settarget[atomselecttop$selection]
setmasses[$targetgetmass]
$targetsetbeta$targetMark
$targetsetoccupancy$masses
$allwritepdb$targetPdb
exit
6Nowrunthescript:
vmd-dispdevtext-emakeTargetAtomPdb.tcl14
(Note:ForWindowsusers,opentheVMDGUIandsourcethescript leintheTkConsole.)
Ifyouwereunabletorunthescript,copythe leexample-output/ubiquitinsolvateintothecommondirectory.
7Next,takealookatthetclForcesscript.Openthe lerot-b.tcl.Rightfromthebeginning,wenoticemanydi erences.It rstsetsatargetMarkvariablesothatthescriptcanrecognizethemarkswe’vesetinthetargetPDB:
settargetMark1.0
8NowwehavetoprocessthePDB.Therearenobuilt-inroutinesforac-complishingthis,sothefollowingcodeisquitelow-level.ThecolumnsofaPDB lehavea xedcharacterwidth,sowemustsimplyreadeachline,andbreakitinto xed-sizedpiecesaccordingtothePDBformat:
settargets{}
setmasses{}
setinStream[open$targetAtomPdbr]
foreachline[split[read$inStream]\n]{
settype[stringtrim[stringrange$line05]]
setname[stringtrim[stringrange$line1215]]
setresid[stringtrim[stringrange$line2225]]
setbeta[stringtrim[stringrange$line6065]]
setoccupancy[stringtrim[stringrange$line5459]]
setsegname[stringtrim[stringrange$line7275]]
9We rstmakesurethatthislinecorrespondstoanatomrecordandnotacommentlineorsomeotherentry.Then,iftheatomhasabetavaluematchingthetargetvalue,weformatripleconsistingoftheatom’ssegname,resid,andname.Thisisnecessaryfor ndingtheindexoftheatom: