def extractIndexesTopology(topology, lig_resname, atoms, writeCA, sidechains):
    selection = []
    if atoms:
        atoms_set = set(atoms)
    template = "%s:%s:%s"
    iline = 0
    bool_sidechains = bool(sidechains)
    with open(topology) as f:
        for line in f:
            if not (line.startswith("ATOM") or line.startswith("HETATM")):
                continue
            if atoms:
                serial_num = line[6:11].strip()
                atom_name = line[12:16].strip()
                residue_name = line[17:20].strip()
                if template % (serial_num, atom_name,
                               residue_name) in atoms_set:
                    selection.append(iline)

            elif (line[17:20] == lig_resname
                  or utils.isAlphaCarbon(line, writeCA) or utils.isSidechain(
                      line, bool_sidechains,
                      sidechains)) and line[76:80].strip().upper() != "H":
                selection.append(iline)
            iline += 1
    return selection
Exemple #2
0
def loadAllResnameAtomsInPdb(filename, lig_resname, writeCA, sidechains):
    prunedFileContent = []
    sidechains_bool = bool(sidechains)
    with open(filename) as f:
        prunedSnapshot = []
        for line in f:
            if utils.is_model(line):
                prunedFileContent.append("".join(prunedSnapshot))
                prunedSnapshot = []
            elif line[17:20] == lig_resname or utils.isAlphaCarbon(
                    line, writeCA) or utils.isSidechain(
                        line, sidechains_bool, sidechains):
                prunedSnapshot.append(line)
        if prunedSnapshot:
            prunedFileContent.append("".join(prunedSnapshot))
    return prunedFileContent
def extractIndexesTopology_CM(topology, lig_resname, CM_mode, use_extra_atoms):
    selection = []
    iline = 0
    if CM_mode == "p-p":
        check_ligand = False
    else:
        check_ligand = True
    with open(topology) as f:
        for line in f:
            if not (line.startswith("ATOM") or line.startswith("HETATM")):
                continue

            if line[76:80].strip().upper() != "H" and (
                    check_ligand and line[17:20] == lig_resname
                    or utils.isAlphaCarbon(line, True) or use_extra_atoms
                    and utils.extraAtomCheck(line, EXTRA_ATOMS)):
                selection.append(iline)
            iline += 1
    return selection
def loadAllResnameAtomsInPdb(filename, params):
    prunedFileContent = []
    sidechains_bool = bool(params.sidechains)
    with open(filename) as f:
        prunedSnapshot = []
        for line in f:
            if utils.is_model(line):
                prunedFileContent.append("".join(prunedSnapshot))
                prunedSnapshot = []
            elif utils.is_end(line) or utils.is_remark(line) or utils.is_cryst(
                    line):
                continue
            elif line[17:20] == params.lig_resname or utils.isAlphaCarbon(
                    line, params.protein_CA
                    or params.contact_map) or utils.isSidechain(
                        line, sidechains_bool, params.sidechains) or (
                            params.contact_map and params.extra_atoms
                            and utils.extraAtomCheck(line, EXTRA_ATOMS)):
                prunedSnapshot.append(line)
        if prunedSnapshot:
            prunedFileContent.append("".join(prunedSnapshot))
    return prunedFileContent