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