OK, let's experiment. I'm taking a porin model and I know that the data is affected by twinning (porin.pdb and porin.mtz). 1) Let's run Xtriage to find out the twin law: phenix.xtriage porin.mtz and it gives me this: Statistics depending on twin laws ----------------------------------------------------------------------------------------------------------------- | Operator | type | R obs. | Britton alpha | H alpha | ML alpha | ----------------------------------------------------------------------------------------------------------------- | -2/3*h-1/3*k+2/3*l,-1/3*h-2/3*k-2/3*l,2/3*h-2/3*k+1/3*l | PM | 0.410 | 0.079 | 0.084 | 0.022 | | -h,1/3*h-1/3*k+2/3*l,2/3*h+4/3*k+1/3*l | PM | 0.419 | 0.070 | 0.069 | 0.022 | | -1/3*h+1/3*k-2/3*l,-k,-4/3*h-2/3*k+1/3*l | PM | 0.415 | 0.070 | 0.075 | 0.022 | | -h,2/3*h+1/3*k-2/3*l,-2/3*h-4/3*k-1/3*l | PM | 0.420 | 0.068 | 0.069 | 0.022 | | 1/3*h+2/3*k+2/3*l,-k,4/3*h+2/3*k-1/3*l | PM | 0.415 | 0.074 | 0.077 | 0.022 | | -1/3*h-2/3*k-2/3*l,-2/3*h-1/3*k+2/3*l,-2/3*h+2/3*k-1/3*l | PM | 0.413 | 0.078 | 0.079 | 0.022 | | h,-h-k,-l | M | 0.195 | 0.292 | 0.315 | 0.304 | ----------------------------------------------------------------------------------------------------------------- so I'm still puzzled which twin law to choose from the above list, so I run phenix.model_vs_data: phenix.model_vs_data porin.{mtz,pdb} > model_vs_data.log phenix.model_vs_data will score the possibilities: it internally runs Xtriage to get the twin law and then it computes the R-factors with and without considering twining and based on this it tells you what you have. Ok, phenix.model_vs_data outputs: (...) Data: twinned : h,-h-k,-l (...) and I take "h,-h-k,-l" as my twin_law. 2) Next, I' going to run two refinements - with and without considering twinning: phenix.refine porin.{pdb,mtz} output.prefix=twin twin_law="h,-h-k,-l" --overwrite and phenix.refine porin.{pdb,mtz} output.prefix=no_twin Obviously, considering twinning is a good idea: twin_001.pdb: Final: r_work = 0.1207 r_free = 0.157 no_twin_001.pdb: Final: r_work = 0.2038 r_free = 0.2475 3) Now let's play with SA omit maps. The file "porin.pdb" contains a ligand "C8E". I'm omitting the ligand from twin_001.pdb file (twin_001_NoLigand.pdb) and start SA refinement: phenix.refine porin.mtz twin_001_NoLigand.pdb output.prefix=twin_sa_omit twin_law="h,-h-k,-l" simulated_annealing=true --overwrite and the result is: twin_sa_omit_001.pdb: Final: r_work = 0.1224 r_free = 0.1650 which is slightly worse than twin_001.pdb: Final: r_work = 0.1207 r_free = 0.157 but is not surprising at all since: - By omitting the ligand we made the model worse. One should not expect the omit map look better than the regular map; - SA is good for correcting large errors. This is why it does very good at the beginning of refinement, but it rather harms when you run it with a good close-to-final structure. The maps twin_sa_omit_001_map_coeffs.mtz and twin_001_map_coeffs.mtz look almost identical, and the mFo-DFc omit map shows the ligand. From this I conclude that the program works as expected and does not contain obvious bugs. If you experience a problem with your particular structure, then I think it's case-specific. All the files mentioned above are located here: http://cci.lbl.gov/~afonine/twinning_experience/porin/ Let me know if you have any questions. Pavel.