def add_n_terminal_hydrogens_to_residue_group( residue_group, bonds=None, use_capping_hydrogens=False, append_to_end_of_model=False, ): rc = [] for atom_group, atoms in generate_atom_group_atom_names(residue_group, ['N', 'CA', 'C'], verbose=False): if None not in [atom_group, atoms]: # for ag, (n, ca, c) in generate_atom_group_atom_names(residue_group, # ['N', 'CA', 'C'], # ): tmp = add_n_terminal_hydrogens_to_atom_group( atom_group, bonds=bonds, use_capping_hydrogens=use_capping_hydrogens, append_to_end_of_model=append_to_end_of_model, n_ca_c=atoms, ) assert type(tmp) != type(''), 'not string "%s" %s' % (tmp, type(tmp)) rc += tmp return rc
def add_main_chain_atoms_to_protein_three(three): for ag, (c, ca, n, o) in generate_atom_group_atom_names( three[1], ['C', 'CA', 'N', 'O'], return_Nones=True, ): if o is None: add_main_chain_o_to_atom_group( ag, c_ca_n=[c, ca, n], ) assert 0
def add_main_chain_atoms_to_residue_group(residue_group): # I think this needs a three assert 0 for ag, (c, ca, n, o) in generate_atom_group_atom_names( residue_group, ['C', 'CA', 'N', 'O'], return_Nones=True, ): if o is None: add_main_chain_o_to_atom_group( ag, c_ca_n=[c, ca, n], )
def add_main_chain_atoms_to_residue_group(residue_group): # I think this needs a three assert 0 for ag, (c, ca, n, o) in generate_atom_group_atom_names( residue_group, ['C', 'CA', 'N', 'O'], return_Nones=True, ): # print ag.id_str() # try: print c.quote(),ca.quote(),n.quote(),o.quote() # except: print c,ca,n,o if o is None: add_main_chain_o_to_atom_group( ag, c_ca_n=[c, ca, n], )
def add_c_terminal_oxygens_to_residue_group( residue_group, bonds=None, use_capping_hydrogens=False, append_to_end_of_model=False, ): rc = [] for ag, (c, ca, n) in generate_atom_group_atom_names( residue_group, ['C', 'CA', 'N'], ): tmp = add_c_terminal_oxygens_to_atom_group( ag, bonds=bonds, use_capping_hydrogens=use_capping_hydrogens, append_to_end_of_model=append_to_end_of_model, c_ca_n=[c, ca, n], ) rc += tmp return rc
def add_side_chain_acid_hydrogens_to_residue_group( residue_group, configuration_index=0, element='H', ): """Adds hydrogen atoms to side-chain acid. Args: residue_group (TYPE): Specific residue group """ def _get_atom_names(residue_group): assert len(residue_group.atom_groups()) == 1 atom_group = residue_group.atom_groups()[0] lookup = { 'ASP': ['CG', 'OD1', 'OD2'], 'GLU': ['CD', 'OE1', 'OE2'], } return lookup.get(atom_group.resname, []) # if element == 'H': bond_length = 0.95 elif element == 'D': bond_length = 1.00 else: assert 0 atoms = _get_atom_names(residue_group) for atom_group, atoms in generate_atom_group_atom_names( residue_group, atoms, ): if atom_group is None: continue tmp = add_side_chain_acid_hydrogens_to_atom_group( atom_group, # append_to_end_of_model=append_to_end_of_model, anchors=atoms, configuration_index=configuration_index, bond_length=bond_length, element=element, )