Hi After being through phenix.refine, I see in my hydrophobic core a big space (a few atoms wide) that is filled with strong negative difference density. I suspect the culprit is the bulk solvent mask, which is defined too tightly. The online manual mentions three parameters, but not what they do. solvent_radius, shrink_truncation_radius, grid_step_factor What *exactly* do they do? (I thought I'd elicit a contribution for the online docs this way :) Cheers phx
Hi Frank,
solvent_radius, shrink_truncation_radius, grid_step_factor
What *exactly* do they do?
The grid_step_factor is easy, there is even help text: grid_step_factor = 4.0 .help = "The grid step for the mask calculation is determined as" "highest_resolution divided by grid_step_factor. This is" "considered as suggested value and may be adjusted internally" "based on the resolution." E.g. if your high resolution is 2 A, the gridding of the solvent mask map would be 0.5 A. The other two are a bit more involved. The solvent mask is computed in two stages: 1. - All map grid points are initialized with the value 1, which means "here is solvent". - Loop over all atoms. - Find all grid points within an atom-specific radius + solvent_radius. - If within the atom radius, assign 0 to the grid point, which means "here is protein". - Otherwise assign -1, which means "undecided". 2. - Loop over all grid points with a -1 value. - Find all grid points within shrink_truncation_radius. - If there is at least one neighbor with a 1 value, change the -1 to 1, i.e. "undecided" is changed to "here is solvent". - Otherwise change the -1 to 0, i.e. "undecided" is changed to "here is protein". To resolve your problem, you could try to decrease the shrink_truncation_radius and/or increase the solvent_radius. Another (maybe the best) option is to use this parameter: ignore_zero_occupancy_atoms = True .type = bool .help = Include atoms with zero occupancy into mask calculation Change to ignore_zero_occupancy_atoms=False and add some atoms with suitable radius to the PDB file, in the locations of the negative density, with occupancies zero. It may be a bit tricky to find coordinates that don't lead to nonbonded repulsions distorting the rest of the structure. You can use the .geo file to check the nonbonded interactions of the extra atoms. Ralf
Hi Frank, I just want to add to Ralf's very comprehensive reply... The parameters solvent_radius, shrink_truncation_radius and grid_step_factor are explained in the original paper: Jiang, J.-S. & Brünger, A. T. (1994). J. Mol. Biol. 243, 100-115. "Protein hydration observed by X-ray diffraction. Solvation properties of penicillopepsin and neuraminidase crystal structures." The details of PHENIX implementation of this are described here: P.V. Afonine, R.W. Grosse-Kunstleve & P.D. Adams. Acta Cryst. (2005). D61, 850-855. "A robust bulk-solvent correction and anisotropic scaling procedure" Also, the negative peaks you observe can easily be Fourier series truncation ripples. I think Ralf's suggestion to place some dummy atoms there with zero occupancy is a good idea. I wouldn't even do any refinement (since moving atoms may cancel these artifacts), but just compute two maps - with and w/o the dummy atoms and see what happens to these negative peaks. Cheers, Pavel. On 9/28/2008 3:25 PM, Frank von Delft wrote:
Hi
After being through phenix.refine, I see in my hydrophobic core a big space (a few atoms wide) that is filled with strong negative difference density. I suspect the culprit is the bulk solvent mask, which is defined too tightly.
The online manual mentions three parameters, but not what they do. solvent_radius, shrink_truncation_radius, grid_step_factor
What *exactly* do they do?
(I thought I'd elicit a contribution for the online docs this way :) Cheers phx _______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
Hi guys,
I'm a bit confused by this answer.
I get the "add dummy atoms and calculate map" to check whether it is Fourier
truncation ripples (which I don't think it will turn out to be).
But I wouldn't feel comfortable depositing a structure with dummy atoms even
if they do have zero occupancy. Are you really suggesting that people do
that?
Secondly, when I look in the .def for my refinements I find two entries for
mask calculation:
Under the fake_f_obs heading
mask {
solvent_radius = 1.11
shrink_truncation_radius = 0.9
grid_step_factor = 4
verbose = 1
mean_shift_for_mask_update = 0.1
ignore_zero_occupancy_atoms = True
ignore_hydrogens = True
}
And again under it's own heading towards the end
mask {
solvent_radius = 1.11
shrink_truncation_radius = 0.9
grid_step_factor = 4
verbose = 1
mean_shift_for_mask_update = 0.1
ignore_zero_occupancy_atoms = True
ignore_hydrogens = True
}
Which one is relevant? Also why didn't any of you suggest the
optimize_mask=true parameter? Shouldn't that automatically find the best
solvent_radius and shrink_truncation_radius values?
Sorry if these are dumb questions (and sorry that there are so many) but I
was just really confused by these answers.
Sincerely,
Morten Grøftehauge
2008/10/4 Pavel Afonine
Hi Frank,
I just want to add to Ralf's very comprehensive reply... The parameters solvent_radius, shrink_truncation_radius and grid_step_factor are explained in the original paper:
Jiang, J.-S. & Brünger, A. T. (1994). J. Mol. Biol. 243, 100-115. "Protein hydration observed by X-ray diffraction. Solvation properties of penicillopepsin and neuraminidase crystal structures."
The details of PHENIX implementation of this are described here:
P.V. Afonine, R.W. Grosse-Kunstleve & P.D. Adams. Acta Cryst. (2005). D61, 850-855. "A robust bulk-solvent correction and anisotropic scaling procedure"
Also, the negative peaks you observe can easily be Fourier series truncation ripples. I think Ralf's suggestion to place some dummy atoms there with zero occupancy is a good idea. I wouldn't even do any refinement (since moving atoms may cancel these artifacts), but just compute two maps - with and w/o the dummy atoms and see what happens to these negative peaks.
Cheers, Pavel.
On 9/28/2008 3:25 PM, Frank von Delft wrote:
Hi
After being through phenix.refine, I see in my hydrophobic core a big space (a few atoms wide) that is filled with strong negative difference density. I suspect the culprit is the bulk solvent mask, which is defined too tightly.
The online manual mentions three parameters, but not what they do. solvent_radius, shrink_truncation_radius, grid_step_factor
What *exactly* do they do?
(I thought I'd elicit a contribution for the online docs this way :) Cheers phx _______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
_______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
-- Morten K Grøftehauge PhD student Department of Molecular Biology Gustav Wieds Vej 10 C 8000 Aarhus C - Denmark Phone: +45 89 42 52 61 Fax: +45 86 12 31 78 www.bioxray.dk
Hi Morten,
I get the "add dummy atoms and calculate map" to check whether it is Fourier truncation ripples (which I don't think it will turn out to be). But I wouldn't feel comfortable depositing a structure with dummy atoms even if they do have zero occupancy. Are you really suggesting that people do that?
Of course not. The above suggestion was to test the idea about where the negative peaks are coming from (just to mask the region in order to avoid placing a flat bulk solvent density there and see if the peaks are still there). Just for your information: there is a number of files in PDB that contain "dummy atoms" which is obviously bad (since scattering type is undefined which makes it impossible to compute the R-factors for such models). Here are a few examples: 2aed, 2ajp, 2amx, 2ar0, 1au9, 2awp, 2ayv, 2b25, ... I can go on, I have a complete list...
Secondly, when I look in the .def for my refinements I find two entries for mask calculation: Under the fake_f_obs heading mask { solvent_radius = 1.11 shrink_truncation_radius = 0.9 grid_step_factor = 4 verbose = 1 mean_shift_for_mask_update = 0.1 ignore_zero_occupancy_atoms = True ignore_hydrogens = True } And again under it's own heading towards the end mask { solvent_radius = 1.11 shrink_truncation_radius = 0.9 grid_step_factor = 4 verbose = 1 mean_shift_for_mask_update = 0.1 ignore_zero_occupancy_atoms = True ignore_hydrogens = True }
Which one is relevant?
Both are relevant, but used for different purposes. The first one is used for experimenting/development/testing ideas, when real Fobs are replaced with calculated ones (as the scope name suggests: fake_f_obs): fake_Fobs = Fmodel = scale_k1 * exp(-h*U_overall*ht) * (Fcalc + k_sol * exp(-B_sol*s^2) * Fmask) The second scope defines the mask parameters for everything else and this is the one that you most likely want to play with.
Also why didn't any of you suggest the optimize_mask=true parameter? Shouldn't that automatically find the best solvent_radius and shrink_truncation_radius values?
It's a good idea to try out, but that mask optimization does a grid search over a range of solvent_radius and shrink_truncation_radius and the "best" values are chosen based on the lowest R (or Rfree, I don't remember exactly). I wouldn't believe that fixing a few negative peaks somewhere will show up in R-factor (R-factor is a global measure and very insensitive to minor local changes). Cheers, Pavel.
I know this has been asked before, and there are ways around to get this done in Autosol or Xtriage, but a sharpening B-factor for low resolution maps would be a very nice addition to phenix.refine. Are there any plans to add a parameter in phenix.refine for this? Best, Engin
Hi Engin, yes, it is in the list of things to do. Do you have a specific example of where B-factor sharpening really helps (data, model, and the magic value for B-sharp) that I can use as a reference? Pavel. On 1/23/2009 1:43 PM, Engin Ozkan wrote:
I know this has been asked before, and there are ways around to get this done in Autosol or Xtriage, but a sharpening B-factor for low resolution maps would be a very nice addition to phenix.refine. Are there any plans to add a parameter in phenix.refine for this?
Best,
Engin _______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
Not personally. Two people in the lab have done it and are significantly benefiting (and I cannot volunteer their datasets, since the structures are not finished or published yet). However, you can probably get from the pdb database the Delabarre and Brunger data for p97/VCP at 4.4 A (PDB ID: 1YQ0) as explained in Acta Cryst D 62 p. 923. It is implemented in CNS following this paper. Among our lab people the two cases where it really worked were both 3.5 A datasets with experimental phasing (as the Brunger papers also point out to), and in cases without experimental phasing, I have not seen much improvement. The magical values in one case was -100 A^2, and in the other -50 to -100 (For the published Brunger data, it was -120). Thank you, Engin Pavel Afonine wrote:
Hi Engin,
yes, it is in the list of things to do.
Do you have a specific example of where B-factor sharpening really helps (data, model, and the magic value for B-sharp) that I can use as a reference?
Pavel.
On 1/23/2009 1:43 PM, Engin Ozkan wrote:
I know this has been asked before, and there are ways around to get this done in Autosol or Xtriage, but a sharpening B-factor for low resolution maps would be a very nice addition to phenix.refine. Are there any plans to add a parameter in phenix.refine for this?
Best,
Engin _______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
Hi Morten,
I get the "add dummy atoms and calculate map" to check whether it is Fourier truncation ripples (which I don't think it will turn out to be). But I wouldn't feel comfortable depositing a structure with dummy atoms even if they do have zero occupancy. Are you really suggesting that people do that?
Of course not. The above suggestion was to test the idea about where the negative peaks are coming from (just to mask the region in order to avoid placing a flat bulk solvent density there and see if the peaks are still there). Just for your information: there is a number of files in PDB that contain "dummy atoms" which is obviously bad (since scattering type is undefined which makes it impossible to compute the R-factors for such models). Here are a few examples: 2aed, 2ajp, 2amx, 2ar0, 1au9, 2awp, 2ayv, 2b25, ... I can go on, I have a complete list...
Secondly, when I look in the .def for my refinements I find two entries for mask calculation: Under the fake_f_obs heading mask { solvent_radius = 1.11 shrink_truncation_radius = 0.9 grid_step_factor = 4 verbose = 1 mean_shift_for_mask_update = 0.1 ignore_zero_occupancy_atoms = True ignore_hydrogens = True } And again under it's own heading towards the end mask { solvent_radius = 1.11 shrink_truncation_radius = 0.9 grid_step_factor = 4 verbose = 1 mean_shift_for_mask_update = 0.1 ignore_zero_occupancy_atoms = True ignore_hydrogens = True }
Which one is relevant?
Both are relevant, but used for different purposes. The first one is used for experimenting/development/testing ideas, when real Fobs are replaced with calculated ones (as the scope name suggests: fake_f_obs): fake_Fobs = Fmodel = scale_k1 * exp(-h*U_overall*ht) * (Fcalc + k_sol * exp(-B_sol*s^2) * Fmask) The second scope defines the mask parameters for everything else and this is the one that you most likely want to play with.
Also why didn't any of you suggest the optimize_mask=true parameter? Shouldn't that automatically find the best solvent_radius and shrink_truncation_radius values?
It's a good idea to try out, but that mask optimization does a grid search over a range of solvent_radius and shrink_truncation_radius and the "best" values are chosen based on the lowest R (or Rfree, I don't remember exactly). I wouldn't believe that fixing a few negative peaks somewhere will show up in R-factor (R-factor is a global measure and very insensitive to minor local changes). Cheers, Pavel.
Ok, just to wrap this up.
I added zero occupancy dummy atoms to the structure and the R-free improved
by about 0.5 and more importantly the Fo-Fc looked better in other areas of
the map. So I am including the dummy atoms for refinement and then of course
removing them before the final refinement.
I don't know what Frank Von Delft chose to do.
I addition it seems that Brian W. Matthews and Lijun Liu have review coming
out in Protein Science about this subject: "A review about nothing: Are
apolar cavities in proteins really empty?" I haven't read it yet but it
seems that the answer is that no-one knows.
Cheers,
Morten
2009/1/6 Pavel Afonine
Hi Morten,
I get the "add dummy atoms and calculate map" to check whether it is Fourier truncation ripples (which I don't think it will turn out to be). But I wouldn't feel comfortable depositing a structure with dummy atoms even if they do have zero occupancy. Are you really suggesting that people do that?
Of course not. The above suggestion was to test the idea about where the negative peaks are coming from (just to mask the region in order to avoid placing a flat bulk solvent density there and see if the peaks are still there).
Just for your information: there is a number of files in PDB that contain "dummy atoms" which is obviously bad (since scattering type is undefined which makes it impossible to compute the R-factors for such models). Here are a few examples: 2aed, 2ajp, 2amx, 2ar0, 1au9, 2awp, 2ayv, 2b25, ... I can go on, I have a complete list...
Secondly, when I look in the .def for my refinements I find two entries for mask calculation: Under the fake_f_obs heading mask { solvent_radius = 1.11 shrink_truncation_radius = 0.9 grid_step_factor = 4 verbose = 1 mean_shift_for_mask_update = 0.1 ignore_zero_occupancy_atoms = True ignore_hydrogens = True } And again under it's own heading towards the end mask { solvent_radius = 1.11 shrink_truncation_radius = 0.9 grid_step_factor = 4 verbose = 1 mean_shift_for_mask_update = 0.1 ignore_zero_occupancy_atoms = True ignore_hydrogens = True }
Which one is relevant?
Both are relevant, but used for different purposes. The first one is used for experimenting/development/testing ideas, when real Fobs are replaced with calculated ones (as the scope name suggests: fake_f_obs): fake_Fobs = Fmodel = scale_k1 * exp(-h*U_overall*ht) * (Fcalc + k_sol * exp(-B_sol*s^2) * Fmask)
The second scope defines the mask parameters for everything else and this is the one that you most likely want to play with.
Also why didn't any of you suggest the optimize_mask=true parameter? Shouldn't that automatically find the best solvent_radius and shrink_truncation_radius values?
It's a good idea to try out, but that mask optimization does a grid search over a range of solvent_radius and shrink_truncation_radius and the "best" values are chosen based on the lowest R (or Rfree, I don't remember exactly). I wouldn't believe that fixing a few negative peaks somewhere will show up in R-factor (R-factor is a global measure and very insensitive to minor local changes).
Cheers, Pavel.
_______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
-- Morten K Grøftehauge PhD student Department of Molecular Biology Gustav Wieds Vej 10 C 8000 Aarhus C - Denmark Phone: +45 89 42 52 61 Fax: +45 86 12 31 78 www.bioxray.dk
Hi Morten, purely out of curiosity (because my memory is failing, fast :) what was the context of this email again? I suppose I replied with something, but can't remember what... Cheers phx Morten Grøftehauge wrote:
Ok, just to wrap this up.
I added zero occupancy dummy atoms to the structure and the R-free improved by about 0.5 and more importantly the Fo-Fc looked better in other areas of the map. So I am including the dummy atoms for refinement and then of course removing them before the final refinement. I don't know what Frank Von Delft chose to do.
I addition it seems that Brian W. Matthews and Lijun Liu have review coming out in Protein Science about this subject: "A review about nothing: Are apolar cavities in proteins really empty?" I haven't read it yet but it seems that the answer is that no-one knows.
Cheers, Morten
2009/1/6 Pavel Afonine
mailto:[email protected]> Hi Morten,
> I get the "add dummy atoms and calculate map" to check whether it is > Fourier truncation ripples (which I don't think it will turn out to be). > But I wouldn't feel comfortable depositing a structure with dummy > atoms even if they do have zero occupancy. Are you really suggesting > that people do that?
Of course not. The above suggestion was to test the idea about where the negative peaks are coming from (just to mask the region in order to avoid placing a flat bulk solvent density there and see if the peaks are still there).
Just for your information: there is a number of files in PDB that contain "dummy atoms" which is obviously bad (since scattering type is undefined which makes it impossible to compute the R-factors for such models). Here are a few examples: 2aed, 2ajp, 2amx, 2ar0, 1au9, 2awp, 2ayv, 2b25, ... I can go on, I have a complete list...
> Secondly, when I look in the .def for my refinements I find two > entries for mask calculation: > Under the fake_f_obs heading > mask { > solvent_radius = 1.11 > shrink_truncation_radius = 0.9 > grid_step_factor = 4 > verbose = 1 > mean_shift_for_mask_update = 0.1 > ignore_zero_occupancy_atoms = True > ignore_hydrogens = True > } > And again under it's own heading towards the end > mask { > solvent_radius = 1.11 > shrink_truncation_radius = 0.9 > grid_step_factor = 4 > verbose = 1 > mean_shift_for_mask_update = 0.1 > ignore_zero_occupancy_atoms = True > ignore_hydrogens = True > } > > Which one is relevant?
Both are relevant, but used for different purposes. The first one is used for experimenting/development/testing ideas, when real Fobs are replaced with calculated ones (as the scope name suggests: fake_f_obs): fake_Fobs = Fmodel = scale_k1 * exp(-h*U_overall*ht) * (Fcalc + k_sol * exp(-B_sol*s^2) * Fmask)
The second scope defines the mask parameters for everything else and this is the one that you most likely want to play with.
> Also why didn't any of you suggest the optimize_mask=true parameter? > Shouldn't that automatically find the best solvent_radius and > shrink_truncation_radius values?
It's a good idea to try out, but that mask optimization does a grid search over a range of solvent_radius and shrink_truncation_radius and the "best" values are chosen based on the lowest R (or Rfree, I don't remember exactly). I wouldn't believe that fixing a few negative peaks somewhere will show up in R-factor (R-factor is a global measure and very insensitive to minor local changes).
Cheers, Pavel.
_______________________________________________ phenixbb mailing list [email protected] mailto:[email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
-- Morten K Grøftehauge PhD student Department of Molecular Biology Gustav Wieds Vej 10 C 8000 Aarhus C - Denmark Phone: +45 89 42 52 61 Fax: +45 86 12 31 78 www.bioxray.dk http://www.bioxray.dk
------------------------------------------------------------------------
_______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
Hi Morten, I think in your case it is very likely (but not 100% sure) that those peaks were due to some bulk solvent mask artifacts. Remember, when we add dummy atoms there with zero occupancy (which means they do not contribute to the scattering at all) (the only change they produced was the bulk solvent mask), these peaks disappears. Pavel. On 1/20/2009 3:47 AM, Morten Grøftehauge wrote:
Ok, just to wrap this up.
I added zero occupancy dummy atoms to the structure and the R-free improved by about 0.5 and more importantly the Fo-Fc looked better in other areas of the map. So I am including the dummy atoms for refinement and then of course removing them before the final refinement. I don't know what Frank Von Delft chose to do.
I addition it seems that Brian W. Matthews and Lijun Liu have review coming out in Protein Science about this subject: "A review about nothing: Are apolar cavities in proteins really empty?" I haven't read it yet but it seems that the answer is that no-one knows.
Cheers, Morten
2009/1/6 Pavel Afonine
mailto:[email protected]> Hi Morten,
> I get the "add dummy atoms and calculate map" to check whether it is > Fourier truncation ripples (which I don't think it will turn out to be). > But I wouldn't feel comfortable depositing a structure with dummy > atoms even if they do have zero occupancy. Are you really suggesting > that people do that?
Of course not. The above suggestion was to test the idea about where the negative peaks are coming from (just to mask the region in order to avoid placing a flat bulk solvent density there and see if the peaks are still there).
Just for your information: there is a number of files in PDB that contain "dummy atoms" which is obviously bad (since scattering type is undefined which makes it impossible to compute the R-factors for such models). Here are a few examples: 2aed, 2ajp, 2amx, 2ar0, 1au9, 2awp, 2ayv, 2b25, ... I can go on, I have a complete list...
> Secondly, when I look in the .def for my refinements I find two > entries for mask calculation: > Under the fake_f_obs heading > mask { > solvent_radius = 1.11 > shrink_truncation_radius = 0.9 > grid_step_factor = 4 > verbose = 1 > mean_shift_for_mask_update = 0.1 > ignore_zero_occupancy_atoms = True > ignore_hydrogens = True > } > And again under it's own heading towards the end > mask { > solvent_radius = 1.11 > shrink_truncation_radius = 0.9 > grid_step_factor = 4 > verbose = 1 > mean_shift_for_mask_update = 0.1 > ignore_zero_occupancy_atoms = True > ignore_hydrogens = True > } > > Which one is relevant?
Both are relevant, but used for different purposes. The first one is used for experimenting/development/testing ideas, when real Fobs are replaced with calculated ones (as the scope name suggests: fake_f_obs): fake_Fobs = Fmodel = scale_k1 * exp(-h*U_overall*ht) * (Fcalc + k_sol * exp(-B_sol*s^2) * Fmask)
The second scope defines the mask parameters for everything else and this is the one that you most likely want to play with.
> Also why didn't any of you suggest the optimize_mask=true parameter? > Shouldn't that automatically find the best solvent_radius and > shrink_truncation_radius values?
It's a good idea to try out, but that mask optimization does a grid search over a range of solvent_radius and shrink_truncation_radius and the "best" values are chosen based on the lowest R (or Rfree, I don't remember exactly). I wouldn't believe that fixing a few negative peaks somewhere will show up in R-factor (R-factor is a global measure and very insensitive to minor local changes).
Cheers, Pavel.
_______________________________________________ phenixbb mailing list [email protected] mailto:[email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
-- Morten K Grøftehauge PhD student Department of Molecular Biology Gustav Wieds Vej 10 C 8000 Aarhus C - Denmark Phone: +45 89 42 52 61 Fax: +45 86 12 31 78 www.bioxray.dk http://www.bioxray.dk
------------------------------------------------------------------------
_______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
participants (6)
-
Engin Ozkan
-
Frank von Delft
-
Morten Grøftehauge
-
Pavel Afonine
-
Pavel Afonine
-
Ralf W. Grosse-Kunstleve