subroutine int 2FOFC int FOFC char SEGMENTS char PROTEIN ! set cutoffs set vari TOO_CLOSE local real = 2.3 set vari TOO_FAR local real = 4.5 set vari PAIR_CUT local real = 2.3 set vari PAIR_LIST local real = 2.5 set vari 2FO-FC_CUT local real = 1.1 set vari FO-FC_CUT local real = 2.3 set vari FO-FC_ION local real = 1.2 set vari TEMP_CUT local real = 70.0 ! 2 peaks are one if closer than PEAK_SIZE set vari PEAK_SIZE local real = 1.5 ! ! below this line you normaly don't change anything !!!!!!!! dusan ! set vari MAP_DIFF local int = FOFC + 1 if ( 2FOFC .gt. FOFC ) set vari MAP_DIFF local int = 2FOFC + 1 make map MAP_DIFF from FOFC init 9999 \ around 8 sele segm name SEGMENTS end copy delete atom sele segment name WAT2 end ! assignes atoms to keys ! old water molecules !DEFINE KEY key wat select .not segment name PROTEIN end ! protein nonhydrogen atoms key protein select segment name PROTEIN .and. .not. atom name H* end ! all nonhydrogen atoms key orig select segment name SEGMENTS .and. .not. atom name H* end ! all dummy heavy protein atoms key dummy select weight -0.1 0.1 .and. protein end key old select all end ! removes all water molecules with oxygens placed at positions ! with lower electron density than 2FO-FC_CUT key dw select map 2FOFC -20.0 2FO-FC_CUT from wat .and. atom name O* end delete atom select by resi dw end ! removes all water molecules with oxygen temperature factors higher ! than TEMP_CUT key dw select temp TEMP_CUT 1000.0 .and. atom name O* .and. wat end delete atom select by resi dw end ! Writes the solvent molecules with still positive difference electron ! density to the file ion.list. Their electron number seems to be too ! small for their position. write over file ion.list select .not. atom name H* .and. \ map MAP_DIFF FO-FC_ION 100. from wat end coordinates xplor make point init from map MAP_DIFF extrem FO-FC_CUT 200.0 show point dens ! makes atom from points (peaks in the Fo-Fc map) ! and assignes the newly created peaks to the key xxx make atom from point reindex key xxx select .not old end show key xxx ! deletes all the peaks that are placed at positions where the ! electron density map (1) ,2Fobs-Fcalc, is lower ! than 2FO-FC_CUT sigma. delete atom select map 2FOFC -300. 2FO-FC_CUT from xxx end ! deletes peaks closer than TOO_CLOSE to any "orig" atom ! deletes peaks further than TOO_FAR to any "protein" atom ! deletes peaks closer than TOO_FAR to any dummy protein atom delete atom select around key orig dist TOO_CLOSE from xxx end delete atom \ select .not. around key protein dist TOO_FAR from xxx .and. xxx end delete atom select around key dummy dist TOO_FAR from xxx end ! Since the newly created atoms (peaks) were created as dummy atoms (X) ! they had to be renamed to oxygen(OH2) further treatment. ! the peaks are merged according to their cluster formation. rename select xxx end atom OH2 calc bond distance PEAK_SIZE select xxx end make segm select xxx end make atom merge ( resi select xxx end ) ! renames the clusters into a single segment WAT2 and residues to H2O ! set their temperature factors to 30.0 and ! crystallographical weights to 1.0 rena select xxx end resi H2O rena select xxx end seg WAT2 set temp select xxx end = 30.0 set weigh select xxx end = 1.0 ! Prepare symmetry overlap check. ! initializes the variable ii and sets its value to the current number ! of segments (the variable is later applied in the command file ! REMOVE_SYMM.COM where the symmetry equivalent solvent atoms are removed ! selects all current atoms ! generates the symmetry related atoms from all solvent oxygen atoms ! that are closer than 4.0A to any atom in nnn (dist 4.0 cut) and does ! not apply the identity operation (delete on) ! assigns key "symm" to all not "nnn" atoms set vari ii int = nsegm key nnn select all end key nnn select all end symmetry select xxx .or. wat .and. atom name O* end \ around select nnn end dist TOO_FAR cut delete on key symm select .not. nnn end ! calculates the pair list between the solvent oxygen atoms ! and their symmetry related ones. ! a pair of atoms (peaks) is assumed to be identical when they are closer ! than PAIR_CUT calc pair select symm end select xxx .or. wat .and. atom name O* end - rang 0.0 PAIR_CUT initialize ! All atoms generated with the same symmetry operation obtain a unique ! segment name starting with the character # and each symetry operation ! creates another segment. The following command ! file runs iteratively until it empties the pair list ! The user can see from the pair list of interfering atoms in which ! segments the atoms are included. The interfering atoms appear two times ! in the generated peak atoms and two times in the symmetry related ones. ! Therefore they should be removed so that one of them remains. @MAIN_UTILS:gen_solvent_remove_symm.com ii calc pair select symm .or. xxx end - select orig .and. .not. atom name H* end - rang 0.0 PAIR_CUT initialize ! removes the symmetry related peaks by checking the protein atoms key out sele by pair orig .and. ( xxx .or. symm ) end del atom sele by sequence out .and. ( xxx .or. symm ) end ! Calculates the remaining peaks closer than PAIR_LIST to any protein atom. ! The positions of the paired protein residues should be checked ! at the display. calc pair select protein end - select ( symm .or. xxx .or. wat ) .and. atom name O* end - rang 0.0 PAIR_LIST initial write over file pair.list pair ! Perform hydrogen bond tests: all solvent atoms that have no hydrogen donnor or ! acceptor atom (O*, N*) in their !vicinity (3.4A) are deleted with the command file ATOM_NEIGH.COM. @MAIN_UTILS:gen_solvent_atom_neigh 3.4 rename seq W sele wat .or. xxx end auto ! clean keys etc... delete atom sele segm name #* end key xxx drop key dw drop key dummy drop key nnn drop key out drop key protein drop key symm drop key orig drop ! It remains to generate the missing hydrogens and update the WORK_SEGM ! variable. build sele segm name WAT2 end fill exit calc coor append sele segm name WAT2 end set vari WORK_SEGM global char segm sele segm name WORK_SEGM WAT2 end ! optimize the positions of the newly generated hydrogen atoms ! exploiting non-bonding interactions with the environment