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
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