CHANGELOG

    ==============================================================================
    ===  TO DO  ==================================================================
    ==============================================================================
        do base-P distance, etc   <-- what could "etc" mean?... -->
        GUI for defining measures?
        new func? avgall() should call getAll() instead of get() on AtomSpecs
        different selenoMet bond lengths & angles?
        expand "isprepro" to generic "ispre AAA"?
        determine SSs geometrically if no SSBOND headers avail (or even if so)?
        output residue info for both ends of SSs?
        base-P perp devs in geom kin
        req(resname) for rnabb special cases w/ substituted heavy atoms

    ==============================================================================
    ===  CHANGE LOG  =============================================================
    ==============================================================================
    ### 1.08 ###
    VBC
    - Added -hydrogen flag and StdLengths to measure a few of the standard hydrogen lengths.
    - Added s-s distance to disulfide output.
    - Added angles around s-s bond to disulfide output.

    ### 1.07 ###
    DAK
    - Fixed major bug with base-P perp calculation: I had miscalculated projection
      onto a vector by not scaling dot products by magnitude of that vector!
    - Added generic projection() function for projecting point onto vector (which
      should actually work now that perp bug is fixed...)
    - Minor change to help file on how hets are processed: accepted if recognized
      as protein or nucleic acid; ignored otherwise unless -hets supplied
    - Made VBC's bad-omega kin output account for cis peptides and only work for
      omega, not other dihedrals
    - Tried to add -allalt functionality but ran into logical difficulties (how to
      handle >1 measurement when 1 has alt but other(s) don't?) & aborted, but along
      the way made minor improvements to robustness to input & code readability
    - Added -ideals flag for printing ideal mean & sigma for each measurement

    ### 1.06 ###
    DAK:
    - Added recognition of bases with another heavy atom substituted for O2' as RNA
    - Reverted to evaluating HETATMs listed as nucleic acids even if doHets boolean
      is false (which is the default), but the most common non-oligomeric residues
      ([ACTGU][MDT]P, e.g. ATP) are now excluded (see above), so we should be OK
    - Changed help file to note past changes to cbdev (now matches Prekin)
    VBC:
    - Added prototype for visualization for bad omega(peptide plane) dihedrals.

    ### 1.05 ### dak
    - Fixed bug where HETATMs listed as nucleic acids (e.g. ATP) would still get
      evaluated even if doHets boolean was false (which is the default)
    - Actually removed [ACTGU][MDT]P, e.g. ATP, from the nucleic acids list, so
      now they won't get evaluated even if doHets boolean is true. Rationale:
      they're never in oligomers!
    - Changed definition for omega from i,i+1 to i-1,i to correspond with common
      terminology for cis vs. trans peptides (e.g. Pro)
    - Added proper chi3 definition for Pro to Measurement: CB-CG-CD-N
    - Fixed bug that I had apparently added in at some point which required all
      atoms in a length, angle, or dihedral have the same alt conf.  That's
      unnecessary b/c Model.getState() already gets the default state of ' ' (or 'A'
      if there is an alt conf).
    - Added -alt=X flag for measuring geometry of other alts like 'B'

    ### 1.04 ### dak
    - Allowed "for" to be followed by multiple specifiers, e.g. "for deoxy 2'",
      and to apply to any resname by default if none specified, as opposed to before
      where a residue name was strictly required.
    - Replaced kludgy ignoreDNA/RNA variables with "for oxy/rna" and "for deoxy/
      dna", so "-rna -dna" is now handled logically.
    - Hard coded "for oxy/rna" and "for deoxy/dna" into Parkinson & Gelbin resource
      files as well as dnabb and rnabb builtins.
    - Revamped parsing of -res=#,#-#,... flag to allow a sequence of ranges.
    - Builtin chi3 now works on selenoMet (has 'SE  ' atom).
    - Added disulfide support: "for disulf", "disulfides"/"disulf"/"ss"
      superbuiltin, chi2',chi1',phi',psi' builtins, alternate chi2/3 defs, ...
    - Made geom kin springs & fans unpickable (Jane's request via Vince)
    - Added balls for Cbeta devs >0.25A to geometry kin output
    - Implemented Prekin-like aa type specificity for cbdev builtin; both programs
      now output the same numbers
    - Changed some geom kin flags (mainly deleted them to make things cleaner!)
    - Made Dangle automatically pull build # out of buildnum.props
    ...
    - Made Dangle only deploy Disulfide info to Models if any Measurements
      actually involve disulfides
    - Added some modified bases to RNA residue "whitelist" for Swati
    ...
    - Fixed bug with Disulfide prep (see above)
    - Added alternative chi definition for FHU and PSU (different base atoms)

    ### 1.03 ###
    gjk
    - Added Gelbin....DNA.txt to resources (source file for DNA parameters)
    - Modified Dangle.java to incorporate DNA instead of skipping it
    dak
    - Fixed bug where "-dna" also evaluated RNA.  Now, "-dna" ignores RNA and
      "-rna" ignores DNA.  Both simultaneously evaulates both but (WARNING!)
      still acts weird, especially with "-validate" or "-outliers"!
    - Added "dnabb" superbuiltin analogous to "rnabb"
    - Made Dangle.java automatically pull version # out of version.props
    - Minor readability changes

    ### 1.02 ### dak
    - Added builtins like cbdev - hadev, nhdev, codev - for diagnosing RDC-based
      peptide distortions

    ### 1.01 ### dak
    - Added infrastructure for "for 2'" additions to the Parkinson RNA
      resource file (pucker-specific bond lengths and angles)
    - Also set up for future incorp'n of "for deoxy ..." DNA ideal values

    ### 1.00 ### dak
    - Made Dangle its own program & package separate from chiropraxis