示例#1
0
def getResidueID(res):
    if Biomol.getChainID(res) != ' ':
        return Biomol.getResidueCode(res) + '_' + str(
            Biomol.getResidueSequenceNumber(res)) + '_' + Biomol.getChainID(
                res)

    return Biomol.getResidueCode(res) + '_' + str(
        Biomol.getResidueSequenceNumber(res))
    def __init__(self, lig_feature, env_feature):
        ftype_names = {
            Pharm.FeatureType.H_BOND_ACCEPTOR: 'HBA',
            Pharm.FeatureType.H_BOND_DONOR: 'HBD',
            Pharm.FeatureType.POS_IONIZABLE: 'PI',
            Pharm.FeatureType.NEG_IONIZABLE: 'NI',
            Pharm.FeatureType.AROMATIC: 'AR',
            Pharm.FeatureType.HYDROPHOBIC: 'H',
            Pharm.FeatureType.X_VOLUME: 'XV'
        }

        lig_feature_type = ftype_names[Pharm.getType(lig_feature)]
        lig_residue_code = Biomol.getResidueCode(
            Pharm.getSubstructure(lig_feature).atoms[0])
        lig_residue_number = Biomol.getResidueSequenceNumber(
            Pharm.getSubstructure(lig_feature).atoms[0])
        lig_residue_chain = Biomol.getChainID(
            Pharm.getSubstructure(lig_feature).atoms[0])

        env_feature_type = ftype_names[Pharm.getType(env_feature)]
        env_residue_code = Biomol.getResidueCode(
            Pharm.getSubstructure(env_feature).atoms[0])
        env_residue_number = Biomol.getResidueSequenceNumber(
            Pharm.getSubstructure(env_feature).atoms[0])
        env_residue_chain = Biomol.getChainID(
            Pharm.getSubstructure(env_feature).atoms[0])

        self.interaction_type = '{}-{}'.format(lig_feature_type,
                                               env_feature_type)
        self.lig_residue = '{}_{}_{}'.format(lig_residue_code,
                                             lig_residue_number,
                                             lig_residue_chain)
        self.env_residue = '{}_{}_{}'.format(env_residue_code,
                                             env_residue_number,
                                             env_residue_chain)

        atoms = []
        for atom in Pharm.getSubstructure(lig_feature).atoms:
            key_atom = '{}:{}'.format(Chem.getSymbol(atom),
                                      Biomol.getSerialNumber(atom))
            atoms.append(key_atom)

        self.lig_atom = sorted(atoms, key=lambda k: int(k.split(':')[1]))

        atoms = []
        for atom in Pharm.getSubstructure(env_feature).atoms:
            key_atom = '{}:{}'.format(Chem.getSymbol(atom),
                                      Biomol.getSerialNumber(atom))
            atoms.append(key_atom)

        self.env_atom = sorted(atoms, key=lambda k: int(k.split(':')[1]))
示例#3
0
def fixResidueSeqNumbers(mol):
    curr_seq_no = 0
    res_start = 0
    res_end = 0
    num_atoms = mol.getNumAtoms()
    old_res_seq_nos = []
    old_to_new_seq_no_map = {}

    for atom in mol.atoms:
        old_res_seq_nos.append(Biomol.getResidueSequenceNumber(atom))

    while res_start < num_atoms:
        while res_end < num_atoms and (old_res_seq_nos[res_start]
                                       == old_res_seq_nos[res_end]):
            res_end += 1

        if not old_res_seq_nos[res_start] in old_to_new_seq_no_map:
            old_to_new_seq_no_map[old_res_seq_nos[res_start]] = curr_seq_no

        while res_start < res_end:
            Biomol.setResidueSequenceNumber(mol.getAtom(res_start),
                                            curr_seq_no)
            res_start += 1

        curr_seq_no += 1

    return old_res_seq_nos, old_to_new_seq_no_map
示例#4
0
def filterResidues(residues, res_subset):
    if len(res_subset) == 0:
        return

    i = 0

    while i < len(residues):
        seq_no = Biomol.getResidueSequenceNumber(residues[i])

        if seq_no in res_subset:
            i += 1
            continue

        del residues[i]
示例#5
0
        def generate_key(ftr):
            first_atom = Pharm.getSubstructure(ftr).atoms[0]
            base = str(ftype_names[Pharm.getType(ftr)]) + '[' + str(
                Biomol.getResidueCode(first_atom)) + '_' + str(
                    Biomol.getResidueSequenceNumber(first_atom)) + '_' + str(
                        Biomol.getChainID(first_atom))
            atoms_list = []
            for a in Pharm.getSubstructure(ftr).atoms:
                if Biomol.hasSerialNumber(a) == False:
                    continue

                atom_id = str(Biomol.getSerialNumber(a))
                atoms_list.append(atom_id)

            atom_key = ""
            for k in sorted(atoms_list, key=natural_sort_key, reverse=True):
                atom_key += '_' + k

            key = base + atom_key + ']'
            return key