def get_close_residues_dict(): if os.path.isfile('.close_residues.pickle'): with open('.close_residues.pickle', 'r') as f: return pickle.load(f) mut_data_dict = setup_alanine_scanning.parse_mutations_file() close_residues_dict = {} for pdb_id in mut_data_dict: mut_data = mut_data_dict[pdb_id] for i, pdb_res in enumerate(mut_data.pdb_res_list): insertion_code = mut_data.insertion_code_list[i] chain = mut_data.chain_list[i] close_residues = find_resnums_around_mutation(pdb_id, int(pdb_res), insertion_code, chain) print 'Mutation %s:%d%s has %d residues within %.1f angstroms' % (pdb_id, pdb_res, insertion_code, len(close_residues), cutoff_dist) if pdb_id not in close_residues_dict: close_residues_dict[pdb_id] = {} reskey = (pdb_res, chain, insertion_code) assert( reskey not in close_residues_dict[pdb_id] ) close_residues_dict[pdb_id][reskey] = close_residues with open('.close_residues.pickle', 'w') as f: pickle.dump(close_residues_dict, f) return close_residues_dict
def get_close_residues_dict(): if os.path.isfile('.close_residues.pickle'): with open('.close_residues.pickle', 'rb') as f: return pickle.load(f) mut_data_dict = setup_alanine_scanning.parse_mutations_file() close_residues_dict = {} for pdb_id in mut_data_dict: mut_data = mut_data_dict[pdb_id] for i, pdb_res in enumerate(mut_data.pdb_res_list): insertion_code = mut_data.insertion_code_list[i] chain = mut_data.chain_list[i] close_residues = find_resnums_around_mutation( pdb_id, int(pdb_res), insertion_code, chain) print('Mutation %s:%d%s has %d residues within %.1f angstroms' % (pdb_id, pdb_res, insertion_code, len(close_residues), cutoff_dist)) if pdb_id not in close_residues_dict: close_residues_dict[pdb_id] = {} reskey = (pdb_res, chain, insertion_code) assert (reskey not in close_residues_dict[pdb_id]) close_residues_dict[pdb_id][reskey] = close_residues with open('.close_residues.pickle', 'wb') as f: pickle.dump(close_residues_dict, f) return close_residues_dict
def get_mutations_data_from_pdb_dict(pdb_data_dict, PDBPosID): for m in pdb_data_dict.values(): if PDBPosID in m.PDBPosID_list: return m raise Exception("Couldn't match ID %s" % str(PDBPosID)) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('output_dirs', nargs='*', help = 'Output directories') args = parser.parse_args() mutations_data = parse_mutations_file() for output_dir in args.output_dirs: analysis_output_dir = os.path.join(global_analysis_output_dir, os.path.basename(output_dir)) if not os.path.isdir(analysis_output_dir): os.makedirs(analysis_output_dir) assert( os.path.isdir(output_dir) ) job_pickle_file = os.path.join( output_dir, pickle_name ) with open(job_pickle_file,'r') as p: job_dict = pickle.load(p)