Hi Hailiang,
According to the instruction, phenix.fmodel was supposed to calculate Fc only;
not just Fc, but Fmodel; phenix.fmodel is to compute model structure factors: Fmodel = scale * exp(AnisoScale) * (Fcalc + k_sol * exp(-b_sol*s^2/4) * Fmask) where: - Fmodel - total model structure factor (complex value) - AnisoScale = -ht*A(-1)*b_cart*A(-1)th/4 - h - column vector with Miller indices - A - orthogonalization matrix - b_cart - anisotropic scale matrix - t and (-1) denotes transposition and inversion operations - scale - overall scale factor - Fcalc - structure factors calculated from atomic model - k_sol and b_sol - Flat Bulk solvent model parameters - Fmask - structure factors calculated from bulk solvent mask When you run like this phenix.fmodel model.pdb high_res=XX or phenix.fmodel model.pdb some_data.mtz then k_sol=b_sol=AnisoScale = 0, and obviously Fmodel = Fcalc
however, when I try the following 2 scripts, they ended up with different Fc values (at the same hkl point):
1. phenix.fmodel ${PDB} high_resolution=XX 2. phenix.fmodel ${PDB} ${MTZ}
The instruction says (2) will output Fcalc that will match the set of Miller indices of the data in reflection_data.mtz file, so I thought 1 and 2 should have the same values at the same hkl points...
How different they are? If very slightly then this is expected. They must be identical if you use this keyword: "algorithm=direct" (the default is "algorithm=fft"). However, using the direct summation algorithm for structure factors calculation may take a long time (depending on data/model size). As a quick test you can leave in your PDB file a few atoms, then run with "algorithm=direct" and see if both ways give you the exact same Fmodel values. Let me know otherwise and I will have a closer look (I would probably need the inputs in this case).
(A most direct way would be checking the Fc at h0k0l0 point and see whether they are proportional to the molecular size, but it seems phenix.fmodel will ignore this point even I expicitly add it to the MTZ file.)
Hm.. I'll check this. Pavel.