| 1 | import chimera
|
|---|
| 2 | from chimera import specifier, selection
|
|---|
| 3 | from StructMeasure.DistMonitor import addDistance
|
|---|
| 4 | sel = selection.ItemizedSelection()
|
|---|
| 5 | sel.merge(selection.REPLACE, specifier.evalSpec(":LYS@NZ"))
|
|---|
| 6 | nearRes = []
|
|---|
| 7 | sel2 = selection.ItemizedSelection()
|
|---|
| 8 | models = chimera.openModels.list(modelTypes=[chimera.Molecule])
|
|---|
| 9 | dists = set()
|
|---|
| 10 | for a in sel.atoms():
|
|---|
| 11 | sel2.clear()
|
|---|
| 12 | sel2.add(a)
|
|---|
| 13 | sel2.merge(selection.REPLACE, specifier.zone(sel2, specifier.ATOM, None, 8.0, models))
|
|---|
| 14 | nearNZ = [sa for sa in sel2.atoms() if sa.name == "NZ" and sa.residue.type == "LYS"]
|
|---|
| 15 | nearNZ.remove(a)
|
|---|
| 16 | for nz in nearNZ:
|
|---|
| 17 | if (a, nz) in dists: continue
|
|---|
| 18 | addDistance(a, nz)
|
|---|
| 19 | dists.add((nz,a))
|
|---|
| 20 | selRes = [nz.residue for nz in nearNZ]
|
|---|
| 21 | nearRes.extend(selRes)
|
|---|
| 22 | selection.setCurrent(nearRes)
|
|---|