From: Maxim Belkin (mbelkin_at_ks.uiuc.edu)
Date: Fri Jan 23 2015 - 14:44:27 CST

> On Jan 23, 2015, at 2:05 PM, Axel Kohlmeyer <akohlmey_at_gmail.com> wrote:
>
> On Fri, Jan 23, 2015 at 2:04 PM, Thomas C. Bishop <bishop_at_latech.edu> wrote:
>> Dear VMD,
>> I"m looking for a quick way to generate a list of atom pairs that are within
>> a specified distance of each other.
>> e.g find oxygen atoms that are within say 3A of each other.
>>
>> I thought I could use the within command
>> set sel [atomselect top "within 3 of name O" ]
>>
>> This selects all atoms within the specified distance (in Å) from a
>> selection,
>> BUT ALSO INCLUDES THE SELECTION ITSELF.
>>
>> So the above sel includes ALL atoms named O b/c each oxygen is within 3 of
>> itself :-)
>>
>> Maybe it's just Friday but I dont' see a simple solution here.
>> This selection is being used to highlight various pairs associated with a
>> radial distribution analysis.
>>
>> Any tips,tricks or solutions greatly appreciated.
>
> you want to use "exwithin" instead of "within".

.. and a little bit of coding.

For example, one could use a very (ultra?) slow script like this:

# result: pairlist with a list of pairs
#####################
set pairlist {}

set sel [atomselect top "name OH2"]
set sellist [$sel list]

foreach index $sellist {
        set selection [atomselect top "name OH2 and exwithin 3 of index $index"]
        set n [$selection num]
        if {$n > 0} {
                set selectionlist [$selection list]
                for {set i 0} {$i < $n} {incr i} {
                        set idx [lindex $selectionlist $i]
                        set pair [lsort [list $index $idx]]
                        if {$pair ni $pairlist} {
                                lappend pairlist $pair
                        }
                }
        }
        $selection delete
}

$sel delete
#############################

Maxim

>
> axel.
>
>> Is it worthwhile to suggest a " -self" option be added to the within command
>>
>> Thanks in advance,
>> Tom.
>>
>>
>>
>>
>> --
>> *******************************
>> Thomas C. Bishop
>> Tel: 318-257-5209
>> Fax: 318-257-3823
>> www.latech.edu/~bishop
>> ********************************
>
>
>
> --
> Dr. Axel Kohlmeyer akohlmey_at_gmail.com http://goo.gl/1wk0
> College of Science & Technology, Temple University, Philadelphia PA, USA
> International Centre for Theoretical Physics, Trieste. Italy.