Ejemplo n.º 1
0
def exercise_allowed_outliers_emsley_filling():
    file_name = libtbx.env.find_in_repositories(
        relative_path="phenix_regression/pdb/3ifk.pdb", test=os.path.isfile)
    if (file_name is None):
        print("Skipping test.")
        return
    params = mmtbx.model.manager.get_default_pdb_interpretation_params()
    params.pdb_interpretation.ramachandran_plot_restraints.enabled = True
    params.pdb_interpretation.ramachandran_plot_restraints.favored = "oldfield"
    params.pdb_interpretation.ramachandran_plot_restraints.allowed = "emsley"
    params.pdb_interpretation.ramachandran_plot_restraints.outlier = None
    params.pdb_interpretation.ramachandran_plot_restraints.inject_emsley8k_into_oldfield_favored = False

    pdb_inp = iotbx.pdb.input(file_name=file_name)
    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out(),
                                build_grm=True)
    grm = model.get_restraints_manager().geometry
    assert grm.ramachandran_manager.get_n_proxies() == 167
    assert grm.ramachandran_manager.get_n_oldfield_proxies() == 164
    assert grm.ramachandran_manager.get_n_emsley_proxies() == 3
    params.pdb_interpretation.ramachandran_plot_restraints.enabled = True
    params.pdb_interpretation.ramachandran_plot_restraints.favored = "oldfield"
    params.pdb_interpretation.ramachandran_plot_restraints.allowed = None
    params.pdb_interpretation.ramachandran_plot_restraints.outlier = None
    model.set_pdb_interpretation_params(params)
    model.process_input_model(make_restraints=True)
    grm = model.get_restraints_manager().geometry
    nprox = grm.ramachandran_manager.get_n_proxies()
    assert nprox == 164
    assert grm.ramachandran_manager.get_n_oldfield_proxies() == 164
    assert grm.ramachandran_manager.get_n_emsley_proxies() == 0
Ejemplo n.º 2
0
def exercise_allowed_outliers_emsley_filling():
  file_name = libtbx.env.find_in_repositories(
    relative_path="phenix_regression/pdb/3ifk.pdb",
    test=os.path.isfile)
  if (file_name is None):
    print("Skipping test.")
    return
  params = mmtbx.model.manager.get_default_pdb_interpretation_params()
  params.pdb_interpretation.peptide_link.ramachandran_restraints = True
  params.pdb_interpretation.peptide_link.restrain_rama_outliers = False
  params.pdb_interpretation.peptide_link.restrain_rama_allowed = True
  params.pdb_interpretation.peptide_link.restrain_allowed_outliers_with_emsley=True
  pdb_inp = iotbx.pdb.input(file_name=file_name)
  model = mmtbx.model.manager(
      model_input=pdb_inp,
      pdb_interpretation_params=params,
      log=null_out())
  grm = model.get_restraints_manager().geometry
  assert grm.ramachandran_manager.get_n_proxies() == 170
  assert grm.ramachandran_manager.get_n_oldfield_proxies() == 167
  assert grm.ramachandran_manager.get_n_emsley_proxies() == 3

  params.pdb_interpretation.peptide_link.ramachandran_restraints = True
  params.pdb_interpretation.peptide_link.restrain_rama_outliers = False
  params.pdb_interpretation.peptide_link.restrain_rama_allowed = False
  params.pdb_interpretation.peptide_link.restrain_allowed_outliers_with_emsley=True
  model.set_pdb_interpretation_params(params)
  grm = model.get_restraints_manager().geometry
  nprox = grm.ramachandran_manager.get_n_proxies()
  assert nprox == 170
  assert grm.ramachandran_manager.get_n_oldfield_proxies() == 164
  assert grm.ramachandran_manager.get_n_emsley_proxies() == 6
Ejemplo n.º 3
0
def exercise_ramachandran_selections(mon_lib_srv, ener_lib):
  # Just check overall rama proxies
  file_name = libtbx.env.find_in_repositories(
    # relative_path="phenix_regression/pdb/3mku.pdb",
    relative_path="phenix_regression/pdb/fab_a_cut.pdb",
    test=os.path.isfile)
  if (file_name is None):
    print("Skipping test.")
    return
  params = mmtbx.model.manager.get_default_pdb_interpretation_params()
  params.pdb_interpretation.peptide_link.ramachandran_restraints = True
  pdb_inp = iotbx.pdb.input(file_name=file_name)
  model = mmtbx.model.manager(
      model_input=pdb_inp,
      pdb_interpretation_params=params,
      log=null_out())
  grm = model.get_restraints_manager().geometry
  assert grm.ramachandran_manager.get_n_proxies() == 53

  # simple selection
  params.pdb_interpretation.peptide_link.ramachandran_restraints = True
  params.pdb_interpretation.peptide_link.rama_selection = "chain A and resid 1:7"
  model.set_pdb_interpretation_params(params)
  grm = model.get_restraints_manager().geometry
  nprox = grm.ramachandran_manager.get_n_proxies()
  assert nprox == 5, ""+\
      "Want to get 5 rama proxies, got %d" % nprox
  # 7 residues: there are insertion codes
  params.pdb_interpretation.peptide_link.ramachandran_restraints = True
  params.pdb_interpretation.peptide_link.rama_selection = "chain A and resid 27:28"
  model.set_pdb_interpretation_params(params)
  grm = model.get_restraints_manager().geometry
  nprox = grm.ramachandran_manager.get_n_proxies()
  assert nprox == 5, ""+\
      "Want to get 5 rama proxies, got %d" % nprox
Ejemplo n.º 4
0
def run(args):
    assert len(args) == 1
    # Read file into pdb_input class
    inp = iotbx.pdb.input(file_name=args[0])

    # create a model manager
    # Catch Sorry about MTRIX here.
    model = mmtbx.model.manager(
        model_input=inp,
        restraint_objects=
        None,  # these are ligands if any [('fname', cif_object), ()]
        log=null_out(),
    )
    print("=" * 80)
    print("number of atoms with MTRIX multiplication:",
          model.get_number_of_atoms())
    show_ss_counts(model)

    # Expand with BIOMT if needed. MTRIX are already expanded by default
    # Catch case when both MTRIX and BIOMT present, or other Sorry raised by
    # BIOMT handling.
    # LIMITATION: this should be done before any selections made on model.manager
    double_counter = 0
    try:
        model.expand_with_BIOMT_records()
    except Sorry as e:
        if str(e).startswith("Model has been already expanded"):
            double_counter += 1
    print("=" * 80)
    print("number of atoms with BIOMT multiplication:",
          model.get_number_of_atoms())
    show_ss_counts(model)

    # Get default params
    pdb_int_params = mmtbx.model.manager.get_default_pdb_interpretation_params(
    )
    # Set whatever you want
    pdb_int_params.pdb_interpretation.secondary_structure.protein.enabled = True
    pdb_int_params.pdb_interpretation.ncs_search.enabled = True
    pdb_int_params.pdb_interpretation.ncs_search.residue_match_radius = 999
    pdb_int_params.pdb_interpretation.clash_guard.nonbonded_distance_threshold = None

    #pdb_int_params.pdb_interpretation.nonbonded_weight = None

    # set the params. Note, that GRM would be dropped, even if it was already
    # constructed. In this example it is not yet constructed.
    model.set_pdb_interpretation_params(params=pdb_int_params)
    grm = model.get_restraints_manager()

    # Not clear which one should be used at the moment
    gs = model.geometry_statistics()
    gs.show()
    # The second way
    msi = model.get_model_statistics_info()
    msi.show_remark_3()
Ejemplo n.º 5
0
def exercise_ramachandran_selections(mon_lib_srv, ener_lib):
    # Just check overall rama proxies
    file_name = libtbx.env.find_in_repositories(
        # relative_path="phenix_regression/pdb/3mku.pdb",
        relative_path="phenix_regression/pdb/fab_a_cut.pdb",
        test=os.path.isfile)
    if (file_name is None):
        print("Skipping test.")
        return
    params = mmtbx.model.manager.get_default_pdb_interpretation_params()
    params.pdb_interpretation.ramachandran_plot_restraints.enabled = True
    params.pdb_interpretation.ramachandran_plot_restraints.inject_emsley8k_into_oldfield_favored = False
    pdb_inp = iotbx.pdb.input(file_name=file_name)
    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out(),
                                build_grm=True)
    grm = model.get_restraints_manager().geometry
    n = grm.ramachandran_manager.get_n_proxies()
    assert n == 53, n

    # simple selection
    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out())
    params.pdb_interpretation.ramachandran_plot_restraints.enabled = True
    params.pdb_interpretation.ramachandran_plot_restraints.inject_emsley8k_into_oldfield_favored = False
    params.pdb_interpretation.ramachandran_plot_restraints.selection = "chain A and resid 1:7"
    model.set_pdb_interpretation_params(params)
    model.process_input_model(make_restraints=True)
    grm = model.get_restraints_manager().geometry
    nprox = grm.ramachandran_manager.get_n_proxies()
    assert nprox == 5, ""+\
        "Want to get 5 rama proxies, got %d" % nprox
    # 7 residues: there are insertion codes
    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out())
    params.pdb_interpretation.ramachandran_plot_restraints.enabled = True
    params.pdb_interpretation.ramachandran_plot_restraints.inject_emsley8k_into_oldfield_favored = False
    params.pdb_interpretation.ramachandran_plot_restraints.selection = "chain A and resid 27:28"
    model.set_pdb_interpretation_params(params)
    model.process_input_model(make_restraints=True)
    grm = model.get_restraints_manager().geometry
    nprox = grm.ramachandran_manager.get_n_proxies()
    assert nprox == 5, ""+\
        "Want to get 5 rama proxies, got %d" % nprox
Ejemplo n.º 6
0
def exercise_ss_creation_crash():
  pdb_str = """
CRYST1  145.350  135.090  157.320  90.00  90.00  90.00 P 1
SCALE1      0.006880  0.000000  0.000000        0.00000
SCALE2      0.000000  0.007402  0.000000        0.00000
SCALE3      0.000000  0.000000  0.006356        0.00000
ATOM      1  N   ASN A   1      47.095 160.279  31.220  1.00 30.00           N
ATOM      2  CA  ASN A   1      65.985 120.233  34.727  1.00 30.00           C
ATOM      3  C   ASN A   1      56.657 138.700  33.374  1.00 30.00           C
ATOM      4  O   ASN A   1      56.353 138.977  34.561  1.00 30.00           O
ATOM      5  CB  ASN A   1      65.238 120.133  36.068  1.00 30.00           C
ATOM      6  CG  ASN A   1      66.087 119.360  37.057  1.00 30.00           C
ATOM      7  OD1 ASN A   1      65.746 118.217  37.441  1.00 30.00           O
ATOM      8  ND2 ASN A   1      67.240 119.920  37.395  1.00 30.00           N
ATOM      9  N   ASN A   2      56.939 137.441  33.021  1.00 30.00           N
ATOM     10  CA  ASN A   2      67.135 117.384  35.354  1.00 30.00           C
ATOM     11  C   ASN A   2      74.935 104.398  35.546  1.00 30.00           C
ATOM     12  O   ASN A   2      74.423 104.166  34.444  1.00 30.00           O
ATOM     13  CB  ASN A   2      65.828 116.703  35.809  1.00 30.00           C
ATOM     14  CG  ASN A   2      66.092 115.518  36.718  1.00 30.00           C
ATOM     15  OD1 ASN A   2      66.641 114.515  36.266  1.00 30.00           O
ATOM     16  ND2 ASN A   2      65.744 115.556  38.000  1.00 30.00           N
ATOM     17  N   ASN A   3      76.102 103.886  35.920  1.00 30.00           N
ATOM     18  CA  ASN A   3      68.960 115.076  35.163  1.00 30.00           C
ATOM     19  C   ASN A   3      86.047  90.376  35.591  1.00 30.00           C
ATOM     20  O   ASN A   3      87.134  90.903  35.535  1.00 30.00           O
ATOM     21  CB  ASN A   3      70.251 115.882  34.903  1.00 30.00           C
ATOM     22  CG  ASN A   3      71.023 116.208  36.192  1.00 30.00           C
ATOM     23  OD1 ASN A   3      70.637 117.096  36.957  1.00 30.00           O
ATOM     24  ND2 ASN A   3      72.106 115.481  36.436  1.00 30.00           N
ATOM     25  OXT ASN A   3      85.912  89.104  36.045  1.00 30.00           O
TER
END


"""
  with open("exercise_ss_creation_crash_model.pdb","w") as fo:
    fo.write(pdb_str)
  from iotbx.data_manager import DataManager
  dm=DataManager()
  params = mmtbx.model.manager.get_default_pdb_interpretation_params()
  params.pdb_interpretation.secondary_structure.enabled=True
  model = dm.get_model('exercise_ss_creation_crash_model.pdb')
  model.set_pdb_interpretation_params(params)
  model.process_input_model(make_restraints=True)
Ejemplo n.º 7
0
def exercise_reference_model_restraints(mon_lib_srv, ener_lib):
    # 1yjp
    pdb_str = """\
CRYST1   21.937    4.866   23.477  90.00 107.08  90.00 P 1 21 1      2
ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
ATOM      5  N   ASN A   2      -7.656   2.923   3.155  1.00 15.02           N
ATOM      6  CA  ASN A   2      -6.522   2.038   2.831  1.00 14.10           C
ATOM      7  C   ASN A   2      -5.241   2.537   3.427  1.00 13.13           C
ATOM      8  O   ASN A   2      -4.978   3.742   3.426  1.00 11.91           O
ATOM      9  CB  ASN A   2      -6.346   1.881   1.341  1.00 15.38           C
ATOM     10  CG  ASN A   2      -7.584   1.342   0.692  1.00 14.08           C
ATOM     11  OD1 ASN A   2      -8.025   0.227   1.016  1.00 17.46           O
ATOM     12  ND2 ASN A   2      -8.204   2.155  -0.169  1.00 11.72           N
ATOM     13  N   ASN A   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     14  CA  ASN A   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     15  C   ASN A   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     16  O   ASN A   3      -1.872   0.119   3.648  1.00 10.42           O
ATOM     17  CB  ASN A   3      -3.259   1.378   6.042  1.00 12.15           C
ATOM     18  CG  ASN A   3      -2.006   1.739   6.861  1.00 12.82           C
ATOM     19  OD1 ASN A   3      -1.702   2.925   7.072  1.00 15.05           O
ATOM     20  ND2 ASN A   3      -1.271   0.715   7.306  1.00 13.48           N
ATOM     21  N   GLN A   4      -1.005   2.228   3.598  1.00 10.29           N
ATOM     22  CA  GLN A   4       0.384   1.888   3.199  1.00 10.53           C
ATOM     23  C   GLN A   4       1.435   2.606   4.088  1.00 10.24           C
ATOM     24  O   GLN A   4       1.547   3.843   4.115  1.00  8.86           O
ATOM     25  CB  GLN A   4       0.656   2.148   1.711  1.00  9.80           C
ATOM     26  CG  GLN A   4       1.944   1.458   1.213  1.00 10.25           C
ATOM     27  CD  GLN A   4       2.504   2.044  -0.089  1.00 12.43           C
ATOM     28  OE1 GLN A   4       2.744   3.268  -0.190  1.00 14.62           O
ATOM     29  NE2 GLN A   4       2.750   1.161  -1.091  1.00  9.05           N
ATOM     30  N   GLN A   5       2.154   1.821   4.871  1.00 10.38           N
ATOM     31  CA  GLN A   5       3.270   2.361   5.640  1.00 11.39           C
ATOM     32  C   GLN A   5       4.594   1.768   5.172  1.00 11.52           C
ATOM     33  O   GLN A   5       4.768   0.546   5.054  1.00 12.05           O
ATOM     34  CB  GLN A   5       3.056   2.183   7.147  1.00 11.96           C
ATOM     35  CG  GLN A   5       1.829   2.950   7.647  1.00 10.81           C
ATOM     36  CD  GLN A   5       1.344   2.414   8.954  1.00 13.10           C
ATOM     37  OE1 GLN A   5       0.774   1.325   9.002  1.00 10.65           O
ATOM     38  NE2 GLN A   5       1.549   3.187  10.039  1.00 12.30           N
ATOM     39  N   ASN A   6       5.514   2.664   4.856  1.00 11.99           N
ATOM     40  CA  ASN A   6       6.831   2.310   4.318  1.00 12.30           C
ATOM     41  C   ASN A   6       7.854   2.761   5.324  1.00 13.40           C
ATOM     42  O   ASN A   6       8.219   3.943   5.374  1.00 13.92           O
ATOM     43  CB  ASN A   6       7.065   3.016   2.993  1.00 12.13           C
ATOM     44  CG  ASN A   6       5.961   2.735   2.003  1.00 12.77           C
ATOM     45  OD1 ASN A   6       5.798   1.604   1.551  1.00 14.27           O
ATOM     46  ND2 ASN A   6       5.195   3.747   1.679  1.00 10.07           N
ATOM     47  N   TYR A   7       8.292   1.817   6.147  1.00 14.70           N
ATOM     48  CA  TYR A   7       9.159   2.144   7.299  1.00 15.18           C
ATOM     49  C   TYR A   7      10.603   2.331   6.885  1.00 15.91           C
ATOM     50  O   TYR A   7      11.041   1.811   5.855  1.00 15.76           O
ATOM     51  CB  TYR A   7       9.061   1.065   8.369  1.00 15.35           C
ATOM     52  CG  TYR A   7       7.665   0.929   8.902  1.00 14.45           C
ATOM     53  CD1 TYR A   7       6.771   0.021   8.327  1.00 15.68           C
ATOM     54  CD2 TYR A   7       7.210   1.756   9.920  1.00 14.80           C
ATOM     55  CE1 TYR A   7       5.480  -0.094   8.796  1.00 13.46           C
ATOM     56  CE2 TYR A   7       5.904   1.649  10.416  1.00 14.33           C
ATOM     57  CZ  TYR A   7       5.047   0.729   9.831  1.00 15.09           C
ATOM     58  OH  TYR A   7       3.766   0.589  10.291  1.00 14.39           O
ATOM     59  OXT TYR A   7      11.358   2.999   7.612  1.00 17.49           O
TER      60      TYR A   7
HETATM   61  O   HOH A   8      -6.471   5.227   7.124  1.00 22.62           O
HETATM   62  O   HOH A   9      10.431   1.858   3.216  1.00 19.71           O
HETATM   63  O   HOH A  10     -11.286   1.756  -1.468  1.00 17.08           O
HETATM   64  O   HOH A  11      11.808   4.179   9.970  1.00 23.99           O
HETATM   65  O   HOH A  12      13.605   1.327   9.198  1.00 26.17           O
HETATM   66  O   HOH A  13      -2.749   3.429  10.024  1.00 39.15           O
HETATM   67  O   HOH A  14      -1.500   0.682  10.967  1.00 43.49           O
MASTER      234    0    0    0    0    0    0    6   66    1    0    1
END """

    work_params = mmtbx.model.manager.get_default_pdb_interpretation_params()
    work_params.reference_model.enabled = True
    work_params.reference_model.use_starting_model_as_reference = True
    model = mmtbx.model.manager(model_input=iotbx.pdb.input(
        source_info=None, lines=pdb_str.split('\n')),
                                pdb_interpretation_params=work_params,
                                build_grm=True,
                                log=null_out())
    n_ref_dih_prox = model.get_restraints_manager(
    ).geometry.get_n_reference_dihedral_proxies()
    assert n_ref_dih_prox == 34, "expected 34, got %d" % n_ref_dih_prox

    model = mmtbx.model.manager(model_input=iotbx.pdb.input(
        source_info=None, lines=pdb_str.split('\n')),
                                pdb_interpretation_params=work_params,
                                build_grm=False,
                                log=null_out())
    work_params = mmtbx.model.manager.get_default_pdb_interpretation_params()
    work_params.reference_model.enabled = True
    work_params.reference_model.use_starting_model_as_reference = True
    work_params.reference_model.main_chain = False
    model.set_pdb_interpretation_params(work_params)
    model.process_input_model(make_restraints=True)
    n_ref_dih_prox = model.get_restraints_manager(
    ).geometry.get_n_reference_dihedral_proxies()
    assert n_ref_dih_prox == 16, "expected 16, got %d" % n_ref_dih_prox

    model = mmtbx.model.manager(model_input=iotbx.pdb.input(
        source_info=None, lines=pdb_str.split('\n')),
                                pdb_interpretation_params=work_params,
                                build_grm=False,
                                log=null_out())
    work_params = mmtbx.model.manager.get_default_pdb_interpretation_params()
    work_params.reference_model.enabled = True
    work_params.reference_model.use_starting_model_as_reference = True
    work_params.reference_model.side_chain = False
    model.set_pdb_interpretation_params(work_params)
    model.process_input_model(make_restraints=True)
    n_ref_dih_prox = model.get_restraints_manager(
    ).geometry.get_n_reference_dihedral_proxies()
    assert n_ref_dih_prox == 18, "expected 18, got %d" % n_ref_dih_prox
Ejemplo n.º 8
0
def exercise_allowed_outliers():
    file_name = libtbx.env.find_in_repositories(
        relative_path="phenix_regression/pdb/3ifk.pdb", test=os.path.isfile)
    if (file_name is None):
        print("Skipping test.")
        return
    params = mmtbx.model.manager.get_default_pdb_interpretation_params()
    params.pdb_interpretation.ramachandran_plot_restraints.enabled = True
    params.pdb_interpretation.ramachandran_plot_restraints.inject_emsley8k_into_oldfield_favored = False
    pdb_inp = iotbx.pdb.input(file_name=file_name)
    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out(),
                                build_grm=True)
    grm = model.get_restraints_manager().geometry
    assert grm.ramachandran_manager.get_n_proxies(
    ) == 170, grm.ramachandran_manager.get_n_proxies()
    full_proxies_iseqs = list(
        tuple(x.get_i_seqs())
        for x in grm.ramachandran_manager._oldfield_proxies)
    params.pdb_interpretation.ramachandran_plot_restraints.favored = "oldfield"
    params.pdb_interpretation.ramachandran_plot_restraints.allowed = "oldfield"
    params.pdb_interpretation.ramachandran_plot_restraints.outlier = None

    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out())
    model.set_pdb_interpretation_params(params)
    model.process_input_model(make_restraints=True)
    grm = model.get_restraints_manager().geometry
    nprox = grm.ramachandran_manager.get_n_proxies()
    # print "without outliers", nprox
    assert nprox == 167, nprox
    no_out_proxies_iseqs = list(
        tuple(x.get_i_seqs())
        for x in grm.ramachandran_manager._oldfield_proxies)
    # assert nprox == 5, ""+\
    #     "Want to get 5 rama proxies, got %d" % nprox
    sdif_list = sorted(
        list(set(full_proxies_iseqs) - set(no_out_proxies_iseqs)))
    outliers_txt_list = [
        'pdb=" N   THR B   5 "', 'pdb=" N   GLU B   6 "',
        'pdb=" N   SER B  81 "'
    ]
    # print "outliers"
    for a, answer in zip(sdif_list, outliers_txt_list):
        # print model.get_hierarchy().atoms()[a[1]].id_str()
        assert model.get_hierarchy().atoms()[a[1]].id_str() == answer

    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out())
    params.pdb_interpretation.ramachandran_plot_restraints.favored = "oldfield"
    params.pdb_interpretation.ramachandran_plot_restraints.allowed = None
    params.pdb_interpretation.ramachandran_plot_restraints.outlier = "oldfield"
    model.set_pdb_interpretation_params(params)
    model.process_input_model(make_restraints=True)
    grm = model.get_restraints_manager().geometry
    nprox = grm.ramachandran_manager.get_n_proxies()
    # print "without allowed", nprox
    assert nprox == 167
    no_all_proxies_iseqs = list(
        tuple(x.get_i_seqs())
        for x in grm.ramachandran_manager._oldfield_proxies)
    sdif_list = sorted(
        list(set(full_proxies_iseqs) - set(no_all_proxies_iseqs)))
    allowed_txt_list = [
        'pdb=" N   THR A   5 "', 'pdb=" N   LEU B   4 "',
        'pdb=" N   SER B  38 "'
    ]
    # print "allowed"
    for a, answer in zip(sdif_list, allowed_txt_list):
        # print model.get_hierarchy().atoms()[a[1]].id_str()
        assert model.get_hierarchy().atoms()[a[1]].id_str() == answer

    params.pdb_interpretation.ramachandran_plot_restraints.favored = "oldfield"
    params.pdb_interpretation.ramachandran_plot_restraints.allowed = None
    params.pdb_interpretation.ramachandran_plot_restraints.outlier = None

    model = mmtbx.model.manager(model_input=pdb_inp,
                                pdb_interpretation_params=params,
                                log=null_out())
    model.set_pdb_interpretation_params(params)
    model.process_input_model(make_restraints=True)
    grm = model.get_restraints_manager().geometry
    nprox = grm.ramachandran_manager.get_n_proxies()
    # print "without both", nprox
    assert nprox == 164
    no_both_proxies_iseqs = list(
        tuple(x.get_i_seqs())
        for x in grm.ramachandran_manager._oldfield_proxies)
    sdif_list = sorted(
        list(set(full_proxies_iseqs) - set(no_both_proxies_iseqs)))
    both_txt_list = [
        'pdb=" N   THR A   5 "', 'pdb=" N   LEU B   4 "',
        'pdb=" N   THR B   5 "', 'pdb=" N   GLU B   6 "',
        'pdb=" N   SER B  38 "', 'pdb=" N   SER B  81 "'
    ]
    # print "both"
    for a, answer in zip(sdif_list, both_txt_list):
        # print model.get_hierarchy().atoms()[a[1]].id_str()
        assert model.get_hierarchy().atoms()[a[1]].id_str() == answer