# Change Log

Enhancements and bug fixes introduced in each Sparky version are listed below.

## Version 3.112
Feb 8, 2006

Windows crash | Fixed problem where assigning dozens of new resonances in the presence of hundreds of already assigned resonances caused crash on Windows and high CPU use on Linux. Caused by resonance menu memory leak.
Python 2.4 | Updated from Python 2.3.3 to Python 2.4.2.
Tcl/Tk 8.4 | Updated from Tcl/Tk 8.4.5 to Tcl/Tk 8.4.12.
relaxation fit | Fixed bug where deleted fit line caused incorrect display of fit curves. A fit curve for the wrong peak would be shown.
Chimera view | Fixed exception that is raised when trying to display assignment lines for an unassigned 3D peak.
Chimera view | Added code so that selecting assigned peak in 3D spectrum tries to draw line in Chimera between 1H atoms. Formerly, only peaks selected in 2D spectra were drawn.
Peak table | Fixed bug that made peak table list lines contain curly brackets, and table saving fail.
Autoassign | Added new start line pattern for reading chemical shifts from AutoAssign. Needed because of slightly changed header line (extra space at end) in latest AutoAssign (April 27, 2005).

## Version 3.111
March 22, 2005

Windows start-up | Fixed problem on Windows where Sparky did not start if spaces were in the installation path.

## Version 3.110
Feb 25, 2004

Mac application | Packaged Mac version as a Mac application with an icon that can be placed on desktop or in dock. Still requires X windows.
Install location | Made Sparky install at any location without having to edit startup script.
Help buttons | Changed method for showing manual pages in web browser when Help buttons pressed. Now tries to use default browser on Windows and Mac, Mozilla on Linux and Netscape on other machines. Can be changed using SHOW_URL_COMMAND environment variable in startup script on unix systems.
Python 2.3 | Updated from Python 2.1 to Python 2.3.3. Including Python with Sparky distributions now instead of requiring separate download.
Tcl/Tk 8.4 | Updated from Tcl/Tk 8.3.4 to 8.4.5.
relaxation fit | Added option for relaxation fitting to use peak volumes instead of heights.
Ormament sizes | Added spectrum menu to ornament sizes dialog. It now acts on the chosen spectrum instead of the spectrum having selected ornaments.
Peak height | Fixed several extensions that did not work correctly with peak groups because they could not get peak height.
Spin graph assigner | Fixed bug where proposed assignments involving peak groups caused a Python exception. Made pattern axes menus in setup dialog only show choices that are consistent with spectrum nucleus types.
example extension | Updated example Python extension in manual so it works again.

## Version 3.109
Feb 21, 2003

relaxation fit | Allowed use of shifted peak markers in each spectrum in relaxation fitting.
large spectra | Put in support for reading spectrum files larger than 2 gigabytes on some platforms.

## Version 3.108
July 31, 2002

pointer modes | Added abilitiy to set pointer mode in Python and get notifications that pointer mode changed.
ANSI C++ | Made code comply better with ANSI C++ standard.

## Version 3.106
February 19, 2002

pipe2ucsf | Fixed bug where pipe2ucsf produced peak positions off by 1 data point from NMRDraw.
ucsfdata | Added specific error messages when command-line arguments are bad.

## Version 3.105
January 21, 2002

Removed license verification | Took out code checks trial licenses.
Code documentation | Improved compilation instructions and included readme-code.html describing the source code for developers.

## Version 3.104
December 18, 2001

Python 2.1 | Switched from Python 1.5.2 to Python 2.1.1. Also upgraded from Tcl/Tk 8.0.5 to Tcl/Tk 8.3.4.
Mac OS X version | Compiled Sparky on Mac OS 10.1 with X server.
Chimera interface | Updated Sparky interface to molecular graphics program Chimera to work with latest Chimera.

## Version 3.103
November 12, 2001

Spaces in path bug | Fixed bug where spaces in path to NMR data or Sparky session files caused loading data to fail.
Peak assignment labels | Added commands to add (lb) or remove (lB) assignment labels from selected peaks.

## Version 3.102
October 9, 2001

Spectrum rename | Can change spectrum and view names used in menus with the spectrum settings dialog (st).
Renumber view command | Change a spectrum view name to use the lowest available suffix number with the renumber view command rv. If only one view of a spectrum exists then it will have no suffix number. This allows you to get rid of the pesky "/1" in "noesy_100ms/1" if you only have one view.
Printing 4D spectra | Fixed a bug that produced illegal Postscript when printing a 4D spectrum.

## Version 3.101
August 28, 2001

Spectrum region RMSD | Added command (rm) to show mean and rmsd values for a spectrum region selected with the mouse.
Python region selection notice | Added region selection notice to Python interface. Provides callback when user drags a box in a spectrum with the mouse.
Crash when quitting | Fixed a bug that caused core dump when quitting. Happened when a Python extension registered a callback with the C++ Sparky module.

## Version 3.100
June 14, 2001

AutoAssign interface | Added "write peak lists" and "read shifts" buttons so Sparky interface can be used while running AutoAssign manually with its native interface.
Spectrum overlays | Fixed bug in spectrum overlay dialog where pressing remove button always removed first overlay in list instead of the selected overlay.
Spectrum overlays | Allowed choosing multiple overlays in spectrum overlay dialog for removing more than one overlay at a time.
Peak delete bug | Fixed bug where selecting a peak, pressing mouse button on it, hitting delete, and then lifting mouse button caused Sparky to crash.

## Version 3.99
June 6, 2001

Strip plots | Made strip plot vertical scrollbar allow scrolling to cover strip with largest ppm range.
Warning dialogs | Made destroying warning dialog invoke a default choice.
Peak volume | Added initialization in Peak constructor for mFitResidual.
Python peak volume | Made peak volume, volume_method, and fit_height python attributes settable.

## Version 3.98
Feb 15, 2001

pipe2ucsf | Fixed file is smaller than expected error message to show correct file and expected sizes.
Duplicate save files | Fixed bug that occured if project contained save file twice. Spectrum would be unloaded leaving view creation parameters pointing to deleted spectrum.
Reposition sequence | Made move button move partially assigned peaks.
Contour redraw bug | Added code to work around a gcc 2.95.2 PC linux compiler bug that caused the same tile to be continuously redrawn. Added comments about 80 bit Intel x86 FPU problems.
Slices | Made slice not update if pointer just moves along current slice. Made slices update when z-plane changes.
Memory bug | Fixed bug where spectrum data memory cache immediately freed large spectrum blocks right after they are allocated. Locked element being added to cache so it can not be freed in the add_to_cache() call.

## Version 3.97
Dec 12, 2000

Sweep width | Added interface to specify sweepwidths in spectrum settings dialog (st). Made peak alias commands use new spectrum sweepwidth parameter. Made resonance panel aliasing use new spectrum sweep_width parameter. Added sweep_width attribute to Python Spectrum class which can differ from spectrum width. Updated Python extensions to use sweep_width for aliasing.
Undo bug | Fixed bug undoing peak delete after spectrum has been closed.
Assignment graph | Made selecting atom with no expected peaks not produce an error.
HCPeaks | Added assignments to new peaks and checked for already existing assigned peak.
Spingraph assigner | Fixed HNCACO expected peaks to include both i and i-1 CO.
matrix2ucsf | Added program matrix2ucsf to convert an array of floats to a UCSF format spectrum file.
Z plane step | Added zu, zd commands to move downfield or upfield one plane.
AutoAssign on Windows | Noted in manual that AutoAssign interface does not work under Windows. Unable to use fork() to start AutoAssign server and client.
Strip plots | Cleaned up add selected peak strips code.
Memory allocation fix | Made new request for 0 bytes return non-zero pointer.
Chimera molecule view | Fixed bug where selection handler was registered many times. Fixed undefined references to chimera.
Read peak list | Recognize lower case atom names (h, c, n) in splitting group from atom. Changed split_group_atom() in sputil.py to allow lower case atom names.
sputil.py warn() | Eliminated unused and broken warn() routine.

## Version 3.95
July 14, 2000

Changes before this release not recorded.

## Dates for some earlier releases

Version | Date
--- | ---
3.91 | May 1 2000
3.87 | Mar 3 2000
3.85 | Feb 29 2000
3.76 | Nov 15 1999
3.74 | Oct 21 1999
3.72 | Oct 14 1999
3.66 | Mar 4 1999
3.64 | Jan 26 1999
3.62 | Nov 17 1998
3.58 | Sep 14 1998
3.37 | Nov 18 1997
3.21 | Jun 24 1997
3.3 | Mar 3 1997