Python-based Hierarchical ENvironment for Integrated Xtallography |
Documentation Home |
Morphing a model with morph_model
Author(s)
Purposemorph_model is a procedure for distorting a model to match an electron density map. It is suited for a case where a poor but unbiased map is available and a model that is generally locally similar to the target structure but where longer-range distances are not conserved. This is often the case in homologous structures. Summary of the procedure used in morph_modelThe basic idea in morph_model is to apply a smoothly-varying offset to the template structure so as to make it match the map as closely as possible. In this way information about the local structure of the template is retained while allowing longer-range changes in structure. Morphing is carried out in 3 steps:
After morphing, the morphed model is refined. This process is then repeated morph_cycles (typically 6) times. Maps for morph_modelNormally you should specify that morph-model use a prime-and-switch map (map_type=prime_and_switch), as that is usually the most effective map for morphing. You can however choose instead to use a 2mFo-DFc map, a density-modified map, or an omit map. The prime-and-switch map is a map calculated in the same way as a density-modified map, except that once the initial model-based map is calculated (priming), the model information is no longer used (switching). This map is typically quite unbiased by the model. Standard run of morph_modelRunning morph_model is easy. If you have a template (coords1.pdb) and a data file fobs.mtz with FP SIGFP and FreeR_flag, you can type: phenix.morph_model data=coords1.mtz model=coords1.pdband morph_model will run automatically. Supplying a map for morph_modelIf you have your own map you want to use in morph_model, you can type: phenix.morph_model data=coords1.mtz \ model=coords1.pdb map_coeffs=my_map_coeffs.mtzand morph_model will start off with your map coefficients instead of calculating a new map. If you specify update_map=True (default) then new maps will be calculated on each subsequent cycle. If you specify update_map=False then your map will be used throughout. Getting a default parameters file for morph_modelUsually you will want to edit a parameters file so that you can specify more details of the run. You can get a default parameters file with: phenix.morph_modeland then just edit the file morph_model_params.dat. Possible ProblemsSpecific limitations and problemsLiteratureAdditional informationList of all morph_model keywords------------------------------------------------------------------------------- Legend: black bold - scope names black - parameter names red - parameter values blue - parameter help blue bold - scope help Parameter values: * means selected parameter (where multiple choices are available) False is No True is Yes None means not provided, not predefined, or left up to the program "%3d" is a Python style formatting descriptor ------------------------------------------------------------------------------- morph_model input_files data= None Data file with experimental data ( FP SIGFP or I SIGI ). data_labels= None Optional labels for experimental data Normally these would be something like I,SIGI or F,SIGF space_group= None Optional space group specification free_r_data= None Optional data file with free_r flags. By default this is the same file as used for experimental data. free_r_labels= None Optional labels for free_r flags. Normally these would be something like FreeR_flags or R_free_flags hl_data= None Optional data file with hl coeffs. By default this is the same file as used for experimental data. hl_labels= None Optional labels for hl flags. Normally these would be something like HLA,HLB,HLC,HLD labin= None Optional Labin line for file with data. This is present for backward compatibility only. Normally use data_labels instead. Only allowed if the data file contains myFP mySIGF and myFreeR_flag: LABIN FP=myFP SIGFP=mySIGFP FreeR_flag=myFreeR_flag model= None Input PDB file with coordinates to be refined and morphed. map_coeffs= None Data file (mtz format) with map coeffs ( FP PHIB FOM or FWT PHWT) for use in morphing. Normally use None. If set, then these map coefficients will be used instead of an omit map. labin_map_coeffs= None Labin line for map coeffs file Something like FP=FP PHIB=PHIM FOM=FOMM Normally use None; used by morph_model in iteration output_files log= morph_model.log Output log file morphed_model= morphed_model.pdb Output morphed model params_out= morph_model_params.eff Parameters file to rerun morph_model directories temp_dir= "" Optional temporary work directory workdir= "" Optional work directory. Base path for all work output_dir= "" Output directory where files are to be written top_output_dir= None Output directory for entire set of runs gui_output_dir= None Base directory for PHENIX GUI. Ignored if running the command-line version. crystal_info resolution= 0. high-resolution limit for map calculation solvent_fraction= None Optional solvent fractoin chain_type= *PROTEIN DNA RNA Chain type (for identifying main-chain and side-chain atoms) correct_aniso= False Remove anisotropy from data final_b= None Overall B of aniso-corrected data. If None, then minimum of the diagonal of anisotropic B values is used morphing number_of_cycles= 6 Number of cycles of morphing rad_morph= 6 Radius for morphing rad_morph_final= None Optional final radius for morphing. If set, rad_morph will be changed from initial value to final value over the cycles of morphing map_type= simple_omit refine_omit 2fofc density_modified *prime_and_switch Map type to use in morphing. Ignored if map_coeffs is set use_ncs_in_ps= False Use NCS (if available) in prime-and-switch maps update_map= True Create new map for morphing at each cycle. Ignored if map_coeffs is set refinement refinement_params= None Input parameters file for phenix.refine skip_clash_guard= True Skip clash guard check in refinement correct_special_position_tolerance= None Adjust tolerance for special position check. If 0., then check for clashes near special positions is not carried out. This sometimes allows phenix.refine to continue even if an atom is near a special position. If 1., then checks within 1 A of special positions. If None, then uses phenix.refine default. (1) reference_restraints= False Restrain angles to starting model. This may be useful at lower resolution. use_hl= None You can choose to use HL coefficients in refinement If None, hl coeffs will be used if available control verbose= False Verbose output debug= False Debugging output raise_sorry= False Raise sorry if problems dry_run= False Just read in and check parameter names nproc= 1 Number of processors to use group_run_command= "sh " Not currently enabled. Command to use to run multiple jobs This may be sh if you are using a single machine (where you might set background=True) or something like 'qsub' or 'qsub -q all.q@theta' on a cluster (where you should leave background=False) queue_commands= None Not currently enabled. You can add any commands that need to be run for your queueing system. For example on a PBS system you might say: queue_commands='#PBS -N morph_model' queue_commands='#PBS -j oe' queue_commands='#PBS -l walltime=03:00:00' queue_commands='#PBS -l nodes=1:ppn=1' condor= None Not currently enabled. Specifies if the group_run_command is submitting a job to a condor cluster. Set by default to True if group_run_command=condor_submit, otherwise False. For condor job submission morph_model uses a customized script with condor commands. Also uses one_subprocess_level=True one_subprocess_level= None Specifies that a subprocess cannot submit a job single_run_command= "sh " Command to use to run single jobs Normally this is sh background= None Run in background. If None, automatically set to True if nproc is greater than one and group_run_command is sh ignore_errors_in_subprocess= True Generally use ignore_errors_in_subprocess=True to ignore errors in sub-processes. This allows you to continue even if a few jobs crash. If all jobs in a group crash, the process will stop. NOTE: if a job hangs or never runs...this will not be detected and you will have to either put a file with the name FINISHED in the directory where the job was to run (e.g, MORPH_MODEL_3/FINISHED) or stop the whole job by putting a file with the name STOPWIZARD in the main run directory (e.g., MORPH_MODEL_3/STOPWIZARD) check_run_command= False Try out run command to make sure it works Use False if your queue may not be available at the beginning of your run. Use True if you want to check things out max_wait_time= 100 Maximum time (sec) to wait for a file to be written (Useful for queues or nfs-mounted systems) wait_between_submit_time= 1.0 You can specify the length of time (seconds) to wait between each job that is submitted when running sub-processes. This can be helpful on NFS-mounted systems when running with multiple processors to avoid file conflicts. The symptom of too short a wait_between_submit_time is File exists:.... wizard_directory_number= None Directory number for MORPH_MODEL_xx. Normally None except if called from GUI n_dir_max= 100000 Maximum number of directories to create (must be as big as nproc or nstruct/chunk) write_run_directory_to_file= None The working directory name is written to this file job_title= None Job title in PHENIX GUI, not used on command line non_user_params print_citations= True Print citation information at end of run is_sub_process= False identifies if this is a sub-process or top-level job |