REMARK RANDOM_MONOMER.INP REMARK Author: Michael Nilges REMARK Ref: Nilges, M. (1993), A calculation strategy for the structure REMARK determination of symmetric dimers by 1H NMR. REMARK Proteins 17, 297-309. REMARK REMARK build a random structure using the internal coordinates REMARK phi and psi are assigned randomly, the other torsion angles REMARK keep their initial values (180 degrees). ! ! variables: $atomid $resm $resid $resp $phi $psi !--------------------------------------------------------------------------- ! undefined ICs (bonds, angles) are filled using the ideal values ! in the parameter file, and all coordinates are initialized. ic fill reference=parameters end end coor init sele=(all) end !--------------------------------------------------------------------------- !--------------------------------------------------------------------------- ! 1) get random coordinates for $atomid in id ( name ca and segid A ) loop main ! loop over all ca atoms vector show element (resid) ( id $atomid ) evaluate ($resid = $result) evaluate ($resm = decode($resid) - 1) evaluate ($resp = decode($resid) + 1) !--------------------------------------------------------------------------- ! check if the previous and the next residue are defined before trying ! to modify the torsion angles. vector show element (resid) ( resid $resm and name ca ) if ( $select > 0 ) then vector show element (resid) ( resid $resp and name ca ) if ( $select > 0 ) then !--------------------------------------------------------------------------- ! assign random values to variable $phi and $psi evaluate ($phi = random()*360-180) evaluate ($psi = random()*360-180) { this would be for an extended strand evaluate ($phi = -139) evaluate ($psi = 135) } !--------------------------------------------------------------------------- ! now modify the torsion anlges with the ic edit command ic edit dihe (segid a and resid $resm and name C ) ! modify phi (segid a and resid $resid and name N ) (segid a and resid $resid and name CA) (segid a and resid $resid and name C ) $phi end edit dihe (segid a and resid $resid and name N ) ! modify psi (segid a and resid $resid and name CA) (segid a and resid $resid and name C ) (segid a and resid $resp and name N ) $psi end end end if end if end loop main { ! now make all D amino acids D for $resid in (store1) loop main !! modify the ic N C *CA CB 0.0 0.0 120.0 0.0 0.0 ic edit dihe (segid a and resid $resid and name N ) ! modify chirality (segid a and resid $resid and name C ) (segid a and resid $resid and name CA) (segid a and resid $resid and name CB ) -120 end end loop main } !--------------------------------------------------------------------------- ! chose any three consecutive atoms as first three and build the coords ic build seed=(segid A and resid $resm and name c ) (segid A and resid $resid and name n ) (segid A and resid $resid and name ca) end end !--------------------------------------------------------------------------- ! build the hydrogens (which are not built by the ic command) quickly flags exclude vdw elec end hbuild select=(hydrogen) phistep=360 end vector do (x=0) (not known) vector do (y=0) (not known) vector do (z=0) (not known) minimize powell nstep= 25 end flags include vdw elec end