def get_alpha_indices(protein: pd.AtomGroup) -> List[int]: """ Get indices of alpha carbons of pd AtomGroup object """ return [ i for i, a in enumerate(protein.iterAtoms()) if a.getName() == "CA" ]
def AddAtoms(initial_residue, atoms2add, atomnames_of_2_letters, residue_data, zmatrix, verbose=True): """ This function returns a mutated residue with the atoms added. This function gets a residue and a list of atomnames to add to the mutation. :rtype : object :param initial_residue: :param atoms2add: :param atomnames_of_2_letters: :param residue_data: :param zmatrix: :param verbose: """ if verbose: print('Adding new atoms:') new_atoms_elements = [] for atom in atoms2add: if verbose: print(" # {}".format(atom)) if atom[:2] in atomnames_of_2_letters: new_atoms_elements.append(atom[:2]) else: new_atoms_elements.append(atom[0]) new_atoms = AtomGroup('New atoms') number_of_new_atoms = len(atoms2add) new_atoms.setNames(list(atoms2add)) new_atoms.setElements(new_atoms_elements) new_atoms.setResnames([residue_data['fin_resname']] * number_of_new_atoms) new_atoms.setResnums([residue_data['resnum']] * number_of_new_atoms) new_atoms.setChids([residue_data['chain']] * number_of_new_atoms) new_atoms.setAltlocs([''] * number_of_new_atoms) new_atoms.setBetas([0] * number_of_new_atoms) new_atoms.setIcodes([''] * number_of_new_atoms) new_atoms.setOccupancies([1] * number_of_new_atoms) new_atoms.setSegnames([''] * number_of_new_atoms) new_atoms.setSerials([0] * number_of_new_atoms) temporary_coords = np.ones([len(atoms2add), 3]) new_atoms.setCoords(temporary_coords) incomplete_residue = initial_residue + new_atoms for atom in new_atoms.iterAtoms(): atom_new_coordinates = GenerateCoordinatesFromZmatrix( incomplete_residue, [atom.getName()], zmatrix) atom.setCoords(atom_new_coordinates) incomplete_residue = initial_residue + new_atoms if verbose: print('Done') return initial_residue + new_atoms
def get_alpha_indices(protein: pd.AtomGroup) -> List[int]: """ Get indices of alpha carbons of pd AtomGroup object """ return [a.getIndex() for a in protein.iterAtoms() if a.getName() == "CA"]