Ejemplo n.º 1
0
import pickle
import os
# import time

pdb_path = '/Users/npolizzi/Projects/combs/src/runs/glutamine_binding_protein/1wdn_noligandH.pdb'
sample = combs.Sample()
sample.poi = pr.parsePDB(pdb_path)
sample.bs_residues = list(
    zip([70, 75, 119, 118, 50, 67, 10, 115, 156, 13, 68, 157, 185],
        ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']))
sample.set_rois()
sample.set_rois_phipsi()
sample.set_poi_clash_coords()
sample.set_roi_bb_coords()

relvdm_amino = combs.Rel_Vandermer('amino')
relvdm_amino.rel_vdm_path = '/Users/npolizzi/Projects/combs/results/amino/rel_vdms/20170830/'
relvdm_amino.load_rel_vdms_pickle(sample)
relvdm_amino.set_rel_vdm_bb_coords()
relvdm_amino.set_rois_rot_trans(sample)
relvdm_amino.set_rel_vdm_tags(sample)
print('moving vdMs')
relvdm_amino.move_rel_vdms(sample)
print('removing clashing vdMs')
relvdm_amino.remove_clash(sample)
relvdm_amino.reshape_ifgs()
print('finding hotspots')
relvdm_amino.find_hotspots(rmsd_cutoff=0.6)
# print('# hotspots=', len(relvdm_amino.hotspots))
relvdm_amino.rel_vdms_pickle = None
relvdm_amino.rel_vdm_ifg_coords = None
Ejemplo n.º 2
0
pdb_path = '/Users/npolizzi/Projects/combs/src/runs/dirhodium/template.pdb'
sample = combs.Sample()
sample.poi = pr.parsePDB(pdb_path)
sample.bs_residues = list(
    zip([1, 2, 5, 8, 9, 39, 40, 43, 44, 47, 1, 2, 5, 8, 9, 39, 40, 43, 44, 47],
        [
            'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C',
            'C', 'C', 'D', 'D', 'D', 'D', 'D'
        ]))
sample.set_rois()
sample.set_rois_phipsi()
sample.set_poi_clash_coords()
sample.set_roi_bb_coords()

relvdm_carboxylate = combs.Rel_Vandermer('carboxylate')
relvdm_carboxylate.rel_vdm_path = '/Users/npolizzi/Projects/combs/results/carboxylate/rel_vdms/20170830/'
relvdm_carboxylate.load_rel_vdms_pickle(sample,
                                        subset={'ALA', 'GLY', 'SER', 'THR'})
relvdm_carboxylate.set_rel_vdm_bb_coords()
relvdm_carboxylate.set_rois_rot_trans(sample)
relvdm_carboxylate.set_rel_vdm_tags(sample)
print('moving vdMs')
relvdm_carboxylate.move_rel_vdms(sample)
print('removing clashing vdMs')
relvdm_carboxylate.remove_clash(sample)
relvdm_carboxylate.reshape_ifgs()
print('finding hotspots')
relvdm_carboxylate.find_hotspots(rmsd_cutoff=0.5)
# print('# hotspots=', len(relvdm_carboxylate.hotspots))
outdir = '/Users/npolizzi/Projects/combs/results/dirhodium/20170919/'
Ejemplo n.º 3
0
def main():
    pdb_path = sys.argv[1]
    sample = combs.Sample()
    sample.poi = pr.parsePDB(pdb_path)
    sample.bs_residues = list(zip([7, 10, 11, 14, 7, 10, 11, 14, 17, 7, 10, 11, 14, 7, 10, 11, 14, 17],
                                  ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B',
                                   'C', 'C', 'C', 'C', 'D', 'D', 'D', 'D', 'D']))
    sample.set_rois()
    sample.set_rois_phipsi()
    sample.set_poi_clash_coords()
    sample.set_roi_bb_coords()

    relvdm_carboxamide = combs.Rel_Vandermer('carboxamide')
    relvdm_carboxamide.rel_vdm_path = \
        '/netapp/home/nick.polizzi/combs/results/carboxamide/rel_vdms/20170830/'
    relvdm_carboxamide.load_rel_vdms_pickle(sample, subset={'ALA', 'GLY', 'SER', 'THR', 'TYR', 'TRP', 'ARG',
                                                            'ASN', 'GLN', 'HIS', 'PHE', 'LEU', 'VAL', 'ILE'})
    relvdm_carboxamide.set_rel_vdm_bb_coords()
    relvdm_carboxamide.set_rois_rot_trans(sample)
    relvdm_carboxamide.set_rel_vdm_tags(sample)
    print('moving carboxamide vdMs')
    relvdm_carboxamide.move_rel_vdms(sample)
    print('removing clashing carboxamide vdMs')
    relvdm_carboxamide.remove_clash(sample)
    relvdm_carboxamide.reshape_ifgs()
    print('finding carboxamide hotspots')
    relvdm_carboxamide.find_hotspots(rmsd_cutoff=0.7)
    relvdm_carboxamide.rel_vdms_pickle = None
    relvdm_carboxamide.rel_vdm_ifg_coords = None
    relvdm_carboxamide.rel_vdm_bb_coords = None
    relvdm_carboxamide.rel_vdm_sc_coords = None
    relvdm_carboxamide.rel_vdm_tags = None
    relvdm_carboxamide.rel_vdm_resnames = None
    relvdm_carboxamide._ifgs = None
    relvdm_carboxamide._resn = None
    relvdm_carboxamide._type = None
    relvdm_carboxamide._vdm_tags = None
    relvdm_carboxamide._indices = None
    relvdm_carboxamide.ifg_dict = {'GLN': 'CG CD OE1 NE2'}
    
    relvdm_preproline_carbonyl1 = combs.Rel_Vandermer('preproline_carbonyl1')
    relvdm_preproline_carbonyl1.rel_vdm_path = \
        '/netapp/home/nick.polizzi/combs/results/preproline_carbonyl/rel_vdms/20170927/'
    relvdm_preproline_carbonyl1.load_rel_vdms_pickle(sample, subset={'ALA', 'GLY', 'SER', 'THR', 'TYR', 'TRP', 'ARG',
                                                                     'ASN', 'GLN', 'HIS', 'PHE', 'LEU', 'VAL', 'ILE'})
    relvdm_preproline_carbonyl1.set_rel_vdm_bb_coords()
    relvdm_preproline_carbonyl1.set_rois_rot_trans(sample)
    relvdm_preproline_carbonyl1.set_rel_vdm_tags(sample)
    print('moving vdMs')
    relvdm_preproline_carbonyl1.move_rel_vdms(sample)
    print('removing clashing vdMs')
    relvdm_preproline_carbonyl1.remove_clash(sample)
    relvdm_preproline_carbonyl1.reshape_ifgs()
    print('finding hotspots')
    relvdm_preproline_carbonyl1.find_hotspots(rmsd_cutoff=0.7)
    
    relvdm_preproline_carbonyl1.rel_vdms_pickle = None
    relvdm_preproline_carbonyl1.rel_vdm_ifg_coords = None
    relvdm_preproline_carbonyl1.rel_vdm_bb_coords = None
    relvdm_preproline_carbonyl1.rel_vdm_sc_coords = None
    relvdm_preproline_carbonyl1.rel_vdm_tags = None
    relvdm_preproline_carbonyl1.rel_vdm_resnames = None
    relvdm_preproline_carbonyl1._ifgs = None
    relvdm_preproline_carbonyl1._resn = None
    relvdm_preproline_carbonyl1._type = None
    relvdm_preproline_carbonyl1._vdm_tags = None
    relvdm_preproline_carbonyl1._indices = None
    relvdm_preproline_carbonyl1.ifg_dict = {'ANY': 'C O CA N'}

    # with open(outdir + 'relvdm_preproline_carbonyl_subset.pickle', 'wb') as outfile:
    #     pickle.dump(relvdm_preproline_carbonyl1, outfile)

    relvdm_preproline_carbonyl2 = deepcopy(relvdm_preproline_carbonyl1)
    relvdm_preproline_carbonyl2.name = 'preproline_carbonyl2'

    relvdm_carboxamide.hotspot_subgraphs = list(
        sorted((comp for comp in nx.connected_component_subgraphs(relvdm_carboxamide.hotspot_graph) if len(comp) > 10),
               key=len, reverse=True))

    relvdm_preproline_carbonyl1.hotspot_subgraphs = list(
        sorted((comp for comp in nx.connected_component_subgraphs(relvdm_preproline_carbonyl1.hotspot_graph) if len(comp) > 10),
               key=len, reverse=True))

    relvdm_preproline_carbonyl2.hotspot_subgraphs = list(
        sorted((comp for comp in nx.connected_component_subgraphs(relvdm_preproline_carbonyl2.hotspot_graph) if len(comp) > 10),
               key=len, reverse=True))

    outdir = '/netapp/home/nick.polizzi/combs/results/apixaban/20170927/subset_TSAGYWNQHFLVIR/output/' \
             + pdb_path.split('/')[-1].split('.')[0] + '/'
    try:
        os.makedirs(outdir)
    except:
        pass
    
    confs_indir = '/netapp/home/nick.polizzi/combs/src/runs/apixaban/apix.pdb'
    sample.ligand_conformers = [pr.parsePDB(confs_indir)]
    sample.set_lig_ifg_dict(relvdm_carboxamide, 'C10 C11 O1 N3')
    sample.set_lig_ifg_dict(relvdm_preproline_carbonyl1, 'C8 O3 C13 N5')
    sample.set_lig_ifg_dict(relvdm_preproline_carbonyl2, 'C19 O2 C23 N2')
    sample.set_ligand_ifg_coords(relvdm_carboxamide)
    sample.set_ligand_ifg_coords(relvdm_preproline_carbonyl1)
    sample.set_ligand_ifg_coords(relvdm_preproline_carbonyl2)
    sample.set_rel_vdms([relvdm_carboxamide, relvdm_preproline_carbonyl1, relvdm_preproline_carbonyl2])

    def rev(name_pairs):
        return [((tup[0][1], tup[0][0]), tup[1]) for tup in name_pairs]

    sample.name_pairs[('carboxamide', 'preproline_carbonyl1')] = \
        [(('O1', 'N5'), 0.25), (('O1', 'C13'), 0.3), (('O1', 'O3'), 0.25),
         (('N3', 'N5'), 0.25), (('N3', 'C13'), 0.3), (('N3', 'O3'), 0.25),
         (('C10', 'N5'), 0.3), (('C10', 'C13'), 0.3), (('C10', 'O3'), 0.3)]
    sample.name_pairs[('preproline_carbonyl1', 'carboxamide')] = \
        rev(sample.name_pairs[('carboxamide', 'preproline_carbonyl1')])

    sample.name_pairs[('carboxamide', 'preproline_carbonyl2')] = \
        [(('O1', 'N2'), 0.25), (('O1', 'C23'), 0.3), (('O1', 'O2'), 0.25),
         (('N3', 'N2'), 0.25), (('N3', 'C23'), 0.3), (('N3', 'O2'), 0.25),
         (('C10', 'N2'), 0.3), (('C10', 'C23'), 0.3), (('C10', 'O2'), 0.3)]
    sample.name_pairs[('preproline_carbonyl2', 'carboxamide')] = \
        rev(sample.name_pairs[('carboxamide', 'preproline_carbonyl2')])

    sample.name_pairs[('preproline_carbonyl1', 'preproline_carbonyl2')] = \
        [(('N5', 'N2'), 0.25), (('N5', 'C23'), 0.25), (('N5', 'O2'), 0.3),
         (('C13', 'N2'), 0.25), (('C13', 'C23'), 0.25), (('C13', 'O2'), 0.3),
         (('O3', 'N2'), 0.3), (('O3', 'C23'), 0.3), (('O3', 'O2'), 0.3)]
    sample.name_pairs[('preproline_carbonyl2', 'preproline_carbonyl1')] = \
        rev(sample.name_pairs[('preproline_carbonyl1', 'preproline_carbonyl2')])

    print('finding lig cst hotspots')
    sample.find_ligand_cst_hotspots()
    sample.set_protein_bb_coords(clash_cutoff=2.5)
    sample.make_densities()
    sample.set_lig_coords()
    print('fitting lig confs to density')
    sample.fit_lig_to_density()
    if sample.poses:
        sample.pose_metrics(rmsd_cutoff=1.7)
        pscores = []
        ifgs = []
        num_sites = []
        poses = []
        for ind in sample.ranked_poses_by_score:
            pscore = sample.pose_scores[ind]
            ifg = sample.pose_num_satisfied_iFGs[ind]
            num_site = sample.pose_num_residues[ind]
            pose = ind
            if pscore > 1:
                pscores.append(pscore)
                ifgs.append(ifg)
                num_sites.append(num_site)
                poses.append(pose)
                keys = set(sample.rel_vdms.keys()) - {'preproline_carbonyl'}
                for relvdm_key in keys:
                    if relvdm_key[:3] == 'pre':
                        sample.rel_vdms['preproline_carbonyl'] = sample.rel_vdms[relvdm_key]
                        sample.rel_vdms['preproline_carbonyl'].name = 'preproline_carbonyl'
                        sample.rel_vdms['preproline_carbonyl'].rel_vdm_path = \
                            '/netapp/home/nick.polizzi/combs/results/preproline_carbonyl/rel_vdms/20170830/'
                        outdir_pdb = outdir + 'pose' + str(ind) + '/' + relvdm_key + '/'
                        try:
                            os.makedirs(outdir_pdb)
                        except:
                            pass
                        sample.poses[ind].subgraphs['preproline_carbonyl'] = sample.poses[ind].subgraphs[relvdm_key]
                        sample.poses[ind].print_graph_pdbs(sample, 'preproline_carbonyl', outdir_pdb)
                        pr.writePDB(outdir + 'pose' + str(ind) + '/' + 'ligand.pdb', sample.poses[ind].ligand)
                    else:
                        outdir_pdb = outdir + 'pose' + str(ind) + '/' + relvdm_key + '/'
                        try:
                            os.makedirs(outdir_pdb)
                        except:
                            pass
                        sample.poses[ind].print_graph_pdbs(sample, relvdm_key, outdir_pdb)
                        pr.writePDB(outdir + 'pose' + str(ind) + '/' + 'ligand.pdb', sample.poses[ind].ligand)
        if pscores:
            with open(outdir + pdb_path.split('/')[-1].split('.')[0] + '_pose_scores.txt', 'w') as outfile:
                outfile.write(sys.argv[1].split('/')[-1] + ', ' + ' '.join(str(s) for s in pscores) + '\n')
                outfile.write('number satisfied iFGs, ' + ' '.join(str(s) for s in ifgs) + '\n')
                outfile.write('number residue sites in pose, ' + ' '.join(str(s) for s in num_sites) + '\n')
                outfile.write('pose, ' + ' '.join(str(s) for s in poses) + '\n')


    if sample.pose_scores[sample.ranked_poses_by_score[0]] > 1000:
        sample.poi = None
        sample.rois = None
        with gzip.open(outdir + 'sample_TSAGYWNQHFLVI_' + pdb_path.split('/')[-1].split('.')[0] + '.pickle.gz', 'wb') as outfile:
            pickle.dump(sample, outfile)
#                               ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']))
sample.bs_residues = list(
    zip([
        10, 12, 13, 16, 17, 50, 53, 67, 68, 69, 70, 72, 75, 88, 115, 117, 118,
        119, 120, 122, 139, 156, 157, 160, 183, 185
    ], [
        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'
    ]))
indir = '/netapp/home/nick.polizzi/combs/src/runs/glutamine_binding_protein/20170915/'
sample.set_rois()
sample.set_rois_phipsi()
sample.set_poi_clash_coords()
sample.set_roi_bb_coords()

relvdm_carboxylate = combs.Rel_Vandermer('carboxylate')
relvdm_carboxylate.rel_vdm_path = '/netapp/home/nick.polizzi/combs/results/carboxylate/rel_vdms/20170830/'
relvdm_carboxylate.load_rel_vdms_pickle(sample)
relvdm_carboxylate.set_rel_vdm_bb_coords()
relvdm_carboxylate.set_rois_rot_trans(sample)
relvdm_carboxylate.set_rel_vdm_tags(sample)
print('moving carboxylate vdMs')
relvdm_carboxylate.move_rel_vdms(sample)
print('removing clashing carboxylate vdMs')
relvdm_carboxylate.remove_clash(sample)
relvdm_carboxylate.reshape_ifgs()
print('finding carboxylate hotspots')
relvdm_carboxylate.find_hotspots(rmsd_cutoff=0.7)
relvdm_carboxylate.rel_vdms_pickle = None
relvdm_carboxylate.rel_vdm_ifg_coords = None
relvdm_carboxylate.rel_vdm_bb_coords = None
import prody as pr
import pickle
# import time


pdb_path = '/Users/npolizzi/Projects/combs/src/runs/glutamine_binding_protein/1wdn_noligandH.pdb'
sample = combs.Sample()
sample.poi = pr.parsePDB(pdb_path)
sample.bs_residues = list(zip([70, 75, 119, 118, 50, 67, 10, 115, 156, 13, 68, 157, 185],
                              ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']))
sample.set_rois()
sample.set_rois_phipsi()
sample.set_poi_clash_coords()
sample.set_roi_bb_coords()

relvdm_carboxamide = combs.Rel_Vandermer('carboxamide')
relvdm_carboxamide.rel_vdm_path = '/Users/npolizzi/Projects/combs/results/carboxamide/rel_vdms/20170830/'
relvdm_carboxamide.load_rel_vdms_pickle(sample)
relvdm_carboxamide.set_rel_vdm_bb_coords()
relvdm_carboxamide.set_rois_rot_trans(sample)
relvdm_carboxamide.set_rel_vdm_tags(sample)
print('moving vdMs')
relvdm_carboxamide.move_rel_vdms(sample)
print('removing clashing vdMs')
relvdm_carboxamide.remove_clash(sample)
relvdm_carboxamide.reshape_ifgs()
print('finding hotspots')
relvdm_carboxamide.find_hotspots(rmsd_cutoff=0.5)
outdir = '/Users/npolizzi/Projects/combs/results/glutamine_binding_protein/20170908/carboxamide/'
# relvdm_carboxamide.print_hotspots(outdir, number=20)