Ejemplo n.º 1
0
    r.buildBondsByDistance()
    if verbose: print 'read ', receptor_filename

    all_res = ResidueSet()
    res_names = residues_to_move.split('_')
    for n in res_names:
        if n.find(':') == -1:
            res = r.chains.residues.get(lambda x: x.name == n)
            all_res += res
            if verbose: print "get: adding ", res.name, " to ", all_res
        else:
            res, msg = CompoundStringSelector().select(ProteinSet([r]), n)
            all_res += res
            if verbose: print "css: adding ", res.name, " to ", all_res
    if verbose:
        print "all_res=", all_res.full_name(
        ), 'all_res.__class__=', all_res.__class__
    #?check for duplicates
    d = {}
    for res in all_res:
        d[res] = 1
    all_res = d.keys()
    all_res = ResidueSet(all_res)

    #inactivate specified bonds
    #disallowed_Pairs "CA_CB:CB_CG:C_CA"
    all_bnds = BondSet()
    bnd_pairs = disallowed_pairs.split(':')
    for pair in bnd_pairs:
        names = pair.split('_')
        bnds = all_res.atoms.bonds[0].get(
            lambda x: x.atom1.name in names and x.atom2.name in names)
        usage()
        sys.exit()


    r = Read(receptor_filename)[0]
    r.buildBondsByDistance()
    if verbose: print 'read ', receptor_filename

    all_res = ResidueSet()
    res_names = residues_to_move.split('_')
    for n in res_names:
        res = r.chains.residues.get(lambda x: x.name==n)
        if verbose: print "adding ", res.name, " to ", all_res
        all_res += res
    if verbose:
        print "all_res=", all_res.full_name(), 'all_res.__class__=', all_res.__class__
    #?check for duplicates
    d = {}
    for res in all_res: d[res] = 1
    all_res = d.keys()
    all_res = ResidueSet(all_res)

    #inactivate specified bonds
    #disallowed_Pairs "CA_CB:CB_CG:C_CA"
    all_bnds = BondSet()
    bnd_pairs = disallowed_pairs.split(':')
    for pair in bnd_pairs:
        names = pair.split('_')
        bnds = all_res.atoms.bonds[0].get(lambda x: x.atom1.name in names and x.atom2.name in names)
        all_bnds += bnds
   
                res = r.chains.residues.get(lambda x: x.name==n)
                all_res += res
                if verbose: print "case no ':' get: adding ", res.name, " to ", all_res
        else:
            # 'hsg1:A:ARG8_ILE82'
            n = res_names_by_chain.replace("_", ",")
            if verbose: print "after comma replaced _ n is ", n
            # 'hsg1:A:ARG8,ILE82'
            res, msg = CompoundStringSelector().select(ProteinSet([r]), n)
            if verbose: print "n selection =", res, " msg=", msg
            if len(res):
                all_res += res
            else:
                print "no residue found using string ", n
    if verbose:
        print "all_res=", all_res.full_name(), 'all_res.__class__=', all_res.__class__
    #?check for duplicates
    d = {}
    for res in all_res: d[res] = 1
    all_res = d.keys()
    all_res = ResidueSet(all_res).uniq()
    all_res.sort()
    if verbose: print "after all_res=", all_res.full_name()

    #inactivate specified bonds
    #disallowed_Pairs "CA_CB:CB_CG:C_CA"
    all_bnds = BondSet()
    bnd_pairs = disallowed_pairs.split(':')
    for pair in bnd_pairs:
        names = pair.split('_')
        bnds = all_res.atoms.bonds[0].get(lambda x: x.atom1.name in names and x.atom2.name in names)