in data/prepare_GO_data.py [0:0]
def chain_to_coords(chain, target_atoms=["N", "CA", "C", "O"], name=""):
"""Convert a PDB chain in to coordinates of target atoms from all
AAs
Args:
chain: a Bio.PDB.Chain object
target_atoms: Target atoms which residues will be resturned.
name: String. Name of the protein.
Returns:
Dictonary containing protein sequence `seq`, 3D coordinates `coord` and name `name`.
"""
output = {}
# get AA sequence in the pdb structure
pdb_seq = "".join(
[
three_to_one_standard(res.get_resname())
for res in chain.get_residues()
if is_aa(res)
]
)
if len(pdb_seq) <= 1:
# has no or only 1 AA in the chain
return None
output["seq"] = pdb_seq
# get the atom coords
coords = np.asarray(
[
get_atom_coords(res, target_atoms=target_atoms)
for res in chain.get_residues()
if is_aa(res)
]
)
output["coords"] = coords.tolist()
output["name"] = "{}-{}".format(name, chain.id)
return output