This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Perlmol, Molecular Bioinformatics,Geometric Programming

I know the 3D coordinates of an atom. I want to find out it's non-bonded atoms within a specific distance.

Rishika Sengupta Research Engineer CARL Bio Group

programming molecular

I have tried it using the PerlMol module using Chemistry::Atom::neighbors but not getting the return type

Please edit your question title to clarify the question.

3 answers

Iterate over the atom set and compute the distance of the current atom to any other atom (google for 'euclidian distance'). This involves two nested loops, hence this has quadratic runtime. For more efficient implementations, you'll need adequate data structures such as k-d trees.

+1 for K-d tree. It would make searches around a particular atom under a given distance-cut very efficient.

+1 For Kd-trees . I think Thomas Hamelryck has one implementation in BioPython

I would also ask you to change the post's title to a more meaningful one.

Not an answer; deleting. Use comments under question for this.

A quick and dirty way would be to use some in built scripting language of some molecular visualizer like rasmol or pymol:

a typical example for rasmol is like the following:

select atomno=2149,atomno=2150
define twoatoms selected
select within(7.5,twoatoms) 
#select atoms within 7.5 angs. from the previously selected two atoms
save pdb atoms_within_75

However this will select bonded as well as non-bonded atoms.You have to tweak further to get the desired result.

maybe the appropriate 'set bondmode' option can do the trick

Log in to answer this question.