# SelectPrim

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