def main(pdb_filename, residues, output_filename): '''writes residues from a PDB file to an output file.''' pdb = open(pdb_filename) outfile = open(output_filename, "w") for line in pdb: if line.startswith("ATOM"): chain, res_type, res_num, atom, x, y, z = parse_atom_line(line) for aa, num in residues: if res_type == aa and res_num == num: outfile.write(line) outfile.close()
def get_ca_atoms(pdb_filename): '''returns a list of all C-alpha atoms in chain A''' pdb_file = open(pdb_filename, "r") ca_list = [] for line in pdb_file: if line.startswith('ATOM'): data = parse_atom_line(line) chain, res_type, res_num, atom, x, y, z = data if atom == 'CA' and chain == 'A': ca_list.append(data) pdb_file.close() return ca_list
''' Find two alpha-C atoms in a PDB structure and calculate their distance. ----------------------------------------------------------- (c) 2013 Allegra Via and Kristian Rother Licensed under the conditions of the Python License This code appears in section 10.4.4 of the book "Managing Biological Data with Python". ----------------------------------------------------------- ''' from math import sqrt from distance import calc_dist from parse_pdb import parse_atom_line pdb = open('3G5U.pdb') points = [] while len(points) < 2: line = pdb.readline() if line.startswith("ATOM"): chain, res_type, res_num, atom, x, y, z = parse_atom_line(line) if res_num == '123' and chain == 'A' and atom == 'CA': points.append((x, y, z)) if res_num == '209' and chain == 'A' and atom == 'CA': points.append((x, y, z)) print(calc_dist(points[0], points[1]))
''' Find two alpha-C atoms in a PDB structure and calculate their distance. ----------------------------------------------------------- (c) 2013 Allegra Via and Kristian Rother Licensed under the conditions of the Python License This code appears in section 10.4.4 of the book "Managing Biological Data with Python". ----------------------------------------------------------- ''' from math import sqrt from distance import calc_dist from parse_pdb import parse_atom_line pdb = open('3G5U.pdb') points = [] while len(points) < 2: line = pdb.readline() if line.startswith("ATOM"): chain, res_type, res_num, atom, x, y, z = parse_atom_line(line) if res_num == '123' and chain == 'A' and atom == 'CA': points.append((x, y, z)) if res_num == '209' and chain == 'A' and atom == 'CA': points.append((x, y, z)) print calc_dist(points[0], points[1])