+1 for K-d tree. It would make searches around a particular atom under a given distance-cut very efficient.
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
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 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.
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.
Edited the question
I think the term "Molecular Bioiformatics" provides no additional information. I hope this article "Ten Simple Rules for Getting Help from Online Scientific Communities" would provide general help for posting questions:http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002202#pcbi.1002202.s002