The other way to reference a Tcl variable is as a boolean array. This is most often used when there is a set of atoms which must be referenced often or when the selection is very complicated. These start with a @ sign and specify if the given atom should be on or off. This notation is used in the same place as a boolean keyword (like protein or water). As with the $ variables, the Tcl variable can be either a scalar or an array. If the value is false, (or 0) the corresponding atom is not selected. If true (or non-zero), it is turned on. Additionally, if the scalar value is an atom selection, the data from that selection is used. Here are some examples of @variables:
if the array foo(n) is defined as 1 of n is odd, 0 if n is even, then the selection text @foo turns on atoms with an odd numbered atom index.
Let ``my_selection'' be defined as set my_selection [atomselect top resid 35] then the selections ``$my_selection and name CA'' and ``sidechain $my_selection'' are also valid.