{+ file: get_ncs_matrices.inp +} {+ directory: general +} {+ description: Determine NCS operators between molecules +} {+ comment: Uses the current coordinates to determine the NCS operators between molecules. +} {+ authors: Axel T. Brunger, and Paul D. Adams +} {+ copyright: Yale University +} {- Guidelines for using this file: - all strings must be quoted by double-quotes - logical variables (true/false) are not quoted - do not remove any evaluate statements from the file -} {- begin block parameter definition -} define( {======================= molecular structures =========================} {* structure file *} {===>} structure_infile="eg1_dimer.mtf"; {* coordinate file *} {===>} coordinate_infile="eg1_dimer.pdb"; {========================== atom selection ===========================} {* select atoms in primary (reference) molecule *} {===>} atom_ref=(segid AAAA and name CA); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_1=(segid CCCC and name CA); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_2=(none); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_3=(none); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_4=(none); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_5=(none); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_6=(none); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_7=(none); {* select atoms in NCS related molecule (use none if not used) *} {===>} atom_ncs_8=(none); {* ignore atom names when comparing NCS related atoms *} {+ choice: true false +} {===>} ignore_name=false; {=========================== output files ============================} {* output listing file with NCS operators *} {===>} list_outfile="get_ncs_matrices.list"; {===========================================================================} { things below this line do not normally need to be changed } {===========================================================================} ) {- end block parameter definition -} checkversion 1.2 evaluate ($log_level=quiet) structure @&structure_infile end coordinates @&coordinate_infile if ( &ignore_name = true ) then do (name="CA") (all) end if set display=&list_outfile end display >>>> NCS operators for: display >>>> structure file= &STRIP%structure_infile display >>>> coordinate file= &STRIP%coordinate_infile display display ====================================================================== display evaluate ($done=false) evaluate ($counter=1) while ( $done = false ) loop group if ( &exist_atom_ncs_$counter = true ) then show sum(1) (&atom_ncs_$counter) if ( $result > 0 ) then ncs restraints init group equiv=&atom_ref equiv=&atom_ncs_$counter end ? end display NCS operator which transforms: display &atom_ref -> &atom_ncs_$counter display display matrix= ( $rot_1_2_1_1[f8.5] $rot_1_2_1_2[f8.5] $rot_1_2_1_3[f8.5] ) display ( $rot_1_2_2_1[f8.5] $rot_1_2_2_2[f8.5] $rot_1_2_2_3[f8.5] ) display ( $rot_1_2_3_1[f8.5] $rot_1_2_3_2[f8.5] $rot_1_2_3_3[f8.5] ) display translation= ( $rot_1_2_1_4[f10.5] $rot_1_2_2_4[f10.5] $rot_1_2_3_4[f10.5] ) display display rms difference= $rot_1_2_rmsd[f8.5] display display ====================================================================== display end if evaluate ($counter=$counter+1) else evaluate ($done=true) end if end loop group display Inverse operators display display ====================================================================== display evaluate ($done=false) evaluate ($counter=1) while ( $done = false ) loop group if ( &exist_atom_ncs_$counter = true ) then show sum(1) (&atom_ncs_$counter) if ( $result > 0 ) then ncs restraints init group equiv=&atom_ref equiv=&atom_ncs_$counter end ? end display Inverse NCS operator which transforms: display &atom_ncs_$counter -> &atom_ref display display matrix= ( $rotinv_1_2_1_1[f8.5] $rotinv_1_2_1_2[f8.5] $rotinv_1_2_1_3[f8.5] ) display ( $rotinv_1_2_2_1[f8.5] $rotinv_1_2_2_2[f8.5] $rotinv_1_2_2_3[f8.5] ) display ( $rotinv_1_2_3_1[f8.5] $rotinv_1_2_3_2[f8.5] $rotinv_1_2_3_3[f8.5] ) display translation= ( $rotinv_1_2_1_4[f10.5] $rotinv_1_2_2_4[f10.5] $rotinv_1_2_3_4[f10.5] ) display display rms difference= $rotinv_1_2_rmsd[f8.5] display display ====================================================================== display end if evaluate ($counter=$counter+1) else evaluate ($done=true) end if end loop group stop