NAME
     SelectMol   - select molecules
     SelectRes   - select residues
     SelectAtom  - select atoms
     SelectBond  - select bonds
     SelectAngle - select angles
     SelectDist  - select distances
     SelectPrim  - select primitives

SYNOPSIS
     SelectMol expr
     SelectRes expr
     SelectAtom expr
     SelectBond expr
     SelectAngle expr
     SelectDist expr
     SelectPrim expr

DESCRIPTION
     Select molecules, residues, atoms, bonds, angles,
     distances or primitives that satisfy a conditions
     specified by an expression. The expression must
     give a result of type boolean (truth value).

     There are two special values not covered by the
     expression syntax below. If an empty string is given
     as expression, everything is selected. If the value
     "0" is given, nothing is selected (i. e. everything
     deselected).

     The following is a formal sytax description of
     expressions in EBNF notation. Typical examples are
     shown in the next section.

       expr       = andExpr { "|" andExpr } .
       andExpr    = relExpr { "&" relExpr } .
       relExpr    = simpleExpr [ relOp setExpr ] .
       relOp      = "=" | "!=" | "<=" |
                    "<" | ">=" | ">" .
       setExpr    = rangeExpr { "," rangeExpr } .
       rangeExpr  = simpeExpr [ ".." simpleExpr ] .
       simpleExpr = term { addOp term } .
       addOp      = "+" | "-" .
       term       = factor { mulOp factor } .
       mulOp      = "*" | "/" | "%" .
       factor     = [ "-" | "sqrt" | "log" | "!" ] primary .
       primary    = constant | designator | "(" expr ")" .
       constant   = string | int | float .
       designator = [ qual "." ] field [ "[" int "]" ] .
       qual       = "mol" | "mol1" | "mol2" |
                    "res" | "res1" | "res2" | "atom" |
                    "atom1" | "atom2" | "atom3" | "atom4" |
                    "bond" | "angle" | "dist" | "prim" .
       field      = "num" | "number" | "name" | "attr" |
                    "shift" | "bfactor" | "vdw" | "d" |
                    "charge" | "heavycharge" |
                    "avgcharge" | "simplecharge" |
                    "len" | "val" | "limit" | "viol" |
                    "upl" | "lol" | "hbond" |
                    propertyName .

     For simple selections, there is a shorter notation
     of the form:

       expr       = exprPart { exprPart } .
       exprPart   = [ "#" molSet ] [ ":" resSet ]
                    [ "@" atomSet ] .
       molSet     = molSel { "," molSel } .
       molSel     = string | range .
       resSet     = resSel { "," resSel } .
       resSel     = string | range .
       atomSet    = string { "," string ) .
       range      = int ".." int | int "-" int .

     Strings are not quoted in this notation.

     The full and the short notation can be mixed, in
     this case a part written in the short notation
     behaves like a primary with a boolean value.

EXAMPLES
     SelectAtom 'name = "C*"'
         # C atoms
     SelectAtom 'name = "CA" & res.num < 10 &
         bfactor > 2.0'
         # CA atoms in residues with number less than 10
         # and with B factor larger than 2
     SelectAtom 'res.num = 10 & name = "CA"'
     SetRef
     SelectAtom 'd < 5.0'
         # atoms with distance less than 5.0 from CA
         # of residue 10
     SelectBond 'atom1.name = "CA" & atom2.name = "CB"'
         # bonds from CA to CB
     SelectAngle 'name = "OMEGA" & (val < 170 | val > 190)'
         # omega angles outside the range from 170 to 190
     SelectDist 'res1.num = 7 | res2.num = 7'
         # distances involving residue 7
     DefPropDist 'hnd' 'atom1.name = "HN" |
         atom2.name = "HN"'
         # define property 'hnd' as all distances that
         # have a HN atom on one side
     SelectDist 'hnd & viol > 1.5'
         # constraints from HN atoms that have a violation
         # of more than 1.5
     SelectDist '! hnd & viol > 2.0'
         # constraints that do not have a HN atom on either
         # side and that have a violation of more than 2.0
     SelectPrim 'mol.num = 2'
         # primitives belonging to molecule number 2
     DefPropRes 'helix' 'mol.name = "bpti*" &
         res.num = 47..56'
         # define helix region of all molecules that have a
         # name starting with "bpti"
     SelectAtom 'name = "CA" & res.helixres'
         # CA atoms in helix region

     SelectAtom '#1-5:10-20,25-30@N,CA,C'
         # N, CA and C atoms of residues 10 to 20 and 25 to 30
         # in molecules 1 to 5
     SelectAtom ':7@HN :12@HA'
         # HN of residue 7 and HA of residue 12

SEE ALSO
     DialSelect, DefProp*, DialMol, SetRef

DATE
     991016
