File: selectNeighbourResidues.py

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-11
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 239,924 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; javascript: 164; makefile: 88
file content (33 lines) | stat: -rw-r--r-- 816 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# select all residues in proximity of less than maxdistance from selected atoms
maxdistance = 10

cl = []

for system1 in getSystems():
  for atom1 in atoms(system1):
    if not atom1.isSelected(): 
      continue
    for system in getSystems():
      for residue in residues(system):
        close=False
        for atom2 in atoms(residue):
          dist = (atom1.getPosition() - atom2.getPosition()).getLength()
          if not atom2.isSelected() and dist < maxdistance:
            close=True
            break
        if close:
          cl.append(residue)
  
for system in getSystems():
  system.deselect()

print "selected", len(cl), "residues"

for residue in cl:
  for atom in atoms(residue):
    if not atom.isSelected():
      atom.select()

for sysem in getSystems():
  getMainControl().update(system)