docs: def valid_backbone_bond_angles(self, atol=20):
          """True if all backbone bond angles are within atol degrees of their expected values.
  
          Notes
          -----
          Ideal bond angles taken from [1].
  
          References
          ----------
          .. [1] Schulz, G. E, and R. Heiner Schirmer. Principles Of
             Protein Structure. New York: Springer-Verlag, 1979.
  
          Parameters
          ----------
          atol : float, optional
              Tolerance value in degrees for the absolute deviation
              away from ideal backbone bond angles.
          """
          bond_angles = self.backbone_bond_angles
          omegas = [x[0] for x in measure_torsion_angles(self)]
          trans = ['trans' if (omega is None) or (
              abs(omega) >= 90) else 'cis' for omega in omegas]
          ideal_n_ca_c = [ideal_backbone_bond_angles[x]['n_ca_c'] for x in trans]
          ideal_ca_c_o = [ideal_backbone_bond_angles[trans[i + 1]]
                          ['ca_c_o'] for i in range(len(trans) - 1)]
          ideal_ca_c_o.append(ideal_backbone_bond_angles['trans']['ca_c_o'])
          ideal_ca_c_n = [ideal_backbone_bond_angles[x]['ca_c_n']
                          for x in trans[1:]]
          ideal_c_n_ca = [ideal_backbone_bond_angles[x]['c_n_ca']
                          for x in trans[1:]]
          a1 = numpy.allclose(bond_angles['n_ca_c'], [ideal_n_ca_c], atol=atol)
          a2 = numpy.allclose(bond_angles['ca_c_o'], [ideal_ca_c_o], atol=atol)
          a3 = numpy.allclose(bond_angles['ca_c_n'], [ideal_ca_c_n], atol=atol)
          a4 = numpy.allclose(bond_angles['c_n_ca'], [ideal_c_n_ca], atol=atol)
          return all([a1, a2, a3, a4])