io_lib NEWS - User visible changes.

-----------------------------------------------------------------------------
Version 1.8.11 - 26th October 2001, by James Bonfield
* Rewrote the background subtraction in convert_trace to deal with each
  channel independently.

* Make install now install the include files (all of them, although not all
  are strictly required) in $prefix/include/io_lib/.

* convert_trace has a new -abi_data option which specifies the DATA channels
  to extract from an ABI file. Eg "convert_trace -abi_data 1,2,3,4" will fetch 
  the raw data.

-----------------------------------------------------------------------------
Version 1.8.10 - 12th July 2001, by James Bonfield
* New option "-d" to index_tar. This controls whether to add directories to
  the index. (Steven Leonard)

* Index tar can now cope with long filenames (up to 255). (Steven Leonard)

* Convert_trace is now a complete replacement for makeSCF: the normalisation
options are available (separated into -normalise and -subtract_background);
rescaling (to any value, rather than just 8-bit and 16-bit); compression using 
external programs. It also includes a -name option which may be used to set
the ID line in experiment files, implying that it can replace init_exp too.

* New program get_comment. This queries the text information stored in
experiment files and allows extraction of all or the specified records.

-----------------------------------------------------------------------------
Version 1.8.9 - June 2001, by James Bonfield
* ZTR spec updated to v1.2. The chebyshev predictor has been rewritten in
  integer format. The old chebyshev still has a format type allocated to it
  (73), but the new ICHEB format (74) is now the default. The old floating
  point method was potentially unstable (eg when running on non IEEE fp
  systems). The new method also seems to save a bit more space.

* The docs and code disagreed for CNF4 storage. Changed the docs to reflect
  the code (which does as intended).

* New named formats types. ZTR1, ZTR2 and ZTR3. ZTR defaults to ZTR2, but we
  can explicitly ask for another compression level if desired.

  (see CHANGES for a fuller list)

-----------------------------------------------------------------------------
Version 1.8.8 - November 2000, by James Bonfield

* ZTR spec updated to v1.1. This is binary incompatible with previous ZTR
  formats, but should now be stable (pending comments from RFC).

-----------------------------------------------------------------------------
Version 1.8.7 - September 2000, by James Bonfield

* IO_LIB now uses GNU autoconf, libtool and automake. This replaces our old
  Makefile system (and the MACHINE environment variable) and so makes it much
  easier to compile on systems we haven't got access to.

  However the downside is that it (presumably) no longer compiles on Microsoft 
  Windows. How do we fix this?

-----------------------------------------------------------------------------
Version 1.8.6

*INCOMPATIBILITY* Removed the find_trace_file function and replaced it
   with an open_trace_file function.

Added a "TAR=" component to RAWDATA. So if we used tar to archive *.ztr
   into /path/name/traces.tar we may be able to use the following;

	RAWDATA='TAR=/path/name/traces.tar'
	export RAWDATA
	extract_seq fred.ztr

   For efficient lookup and random access the index_tar program may be used to 
   produce index the tar file:

	index_tar /path/name/traces.tar > /path/name/traces.tar.index

   The index is not mandatory however. Also the index takes priority, so an
   out of date index will cause the read to fail.


-----------------------------------------------------------------------------
Version 1.8

1. We have now added support for more compression tools. In addition to the
   existing compress, gzip, bzip and bzip2 support io_lib can now also use
   szip. Szip generally gives the best compression ratios of all, but is slow
   at both compression and uncompression.

2. Support for Jean Thierre-Mieg's CTF format. This code was provided by Jean.
   CTF stores identical information to SCF files, but is typically much smaller
   (typically varying between 1.1 and 5 times smaller, depending on the
   data). Additionally CTF compresses very well - in all tests gzipped CTF
   files were smaller than gzipped SCF files, and szipped CTF files are
   even smaller. Jean has extensively tested CTF on hundreds of thousands of
   files and so we are sure that this format is stable.

3. The ZTR file format is a new trace format, and as such has not yet had a
   great deal of testing. It was formerly known as TTFF. Like CTF it stores
   the same data as SCF, but does so at substantially higher compression
   ratios by a combination of "signal differencing" (as in the SCF V3
   specification) and simple huffman encoding (via zlib).

   ZTR files are typically smaller than gzipped SCF files and gzipped CTF
   files, but are much faster to write. Tests show that write speeds are
   approximately 70% slower than uncompressed SCF and about 25% slower to read
   than uncompressed SCF and CTF. (Timing comparisons with compressed SCF and
   CTF files show that ZTR is considerably faster in both reading and
   writing.) ZTR file sizes are typically 35% smaller than gzipped SCF files.
   Compressing ZTR files (gzip, bzip2 or szip) shows no significant change.

   To test ZTR use the convert_trace program:
   
	# To ZTR
	convert_trace any ztr < file.scf > file.ztr

	# From ZTR
	convert_trace ztr scf < file.ztr > file.scf

   Please see ztr/FORMAT for more technical details.

   Note that ztr requires use of zlib. If you use the old Makefile system
   (Makefile.noauto) you may need to edit options.mk to disable ztr if you do
   not have zlib. Zlib is already installed on most Linux systems (it's part
   of PNG).

   It may be found at the zlib home page:
	http://www.info-zip.org/pub/infozip/zlib/

4. New function: get_read_conf() in read/scf_extras.c. This obtains
   confidence values from an experiment file by either using the
   AV lines or indirecting to an SCF file if present.

5. Extract_seq now supports a "-fasta_out" mode.

6. New function: read_sections(). Dictates which elements of a Read
   structure we are interested in loading. This may be used for
   speeding up IO (eg to extract text sequence only). [Note that some
   formats may ignore this request.]

7. New program: convert_trace. This allows conversion between each trace
   format (but can only read from ABI and ALF). So to convert any trace file
   to plain text use "convert_trace any pln < file.abi > file.seq". To
   convert from abi to scf use "convert_trace abi scf < file.abi > file.scf".


-----------------------------------------------------------------------------
Version 1.7

1.	Writing to plain format now only writes out the good sequence. Use
	Experiment file format if all sequence (including vector and poor
	quality regions) is required.

2.	This is the first release to make the abi and alf reading code
	publically available.

-----------------------------------------------------------------------------
Version 1.6

1.	Updated the str2opos and str2conf functions (Experiment Files)
	to contain an extra argument in the declaration. This
	specifies the length of the buffer to write to, thus allowing
	for safe guarding against memory overruns.

2.	Removed memory leak in scf_deallocate().

3.	Added back code to update the private data in the SCF file.
	This seems to have "got lost" somewhere as it did exist prior
	to V1.2.

4.	Fixed a bug in the exp_print_file routine. It wrote tags out
	incorrectly. It now also knows which line types should be
	written only once, and which many times.

5.	Added a exp_set_entry routine to the experiment file code to
	aid extending of the structures in memory.

6.	New exp_close() routine allows closing of the file descriptor
	associated with an experiment file, as created by exp_read_info,
	but without freeing the Exp_Info structure.

7.	conf2str() and opos2str() (experiment file code) didn't null
	terminate the strings when the string just happened to line
	wrap on the very last base. Fixed.

8.	Writing to plain format returned an error code even when
	successful. Fixed

9.	Added automatic compression and uncompression to the *read_reading()
	and *write_reading() functions.


-----------------------------------------------------------------------------
Version 1.5

1.	Update to be more ANSI compliant. This includes replacing a
	couple POSIX calls by ANSI defines.

2.	Added more job-numbers to the use_experiment_redirect()
	function. Backwards compatible.

3.	Added an initialisation of the original trace format (a member
	of the Read structure) to TT_ANY. Previously this was
	undefined.

4.	Fixed bug in the fread_reading() function which didn't fseek()
	back to the start of the file after determining the trace type
	(implies requested loading from format TT_ANY).

5.	Writing to plain format files now allows us to output non NUL
	terminated sequences.

6.	Updated extract_seq program to include a -good_only argument.
	Only works for experiment files - this removes the clipped sequence
	before outputting.

7.	Minor file reorganisation. Added a progs subdirectory to contain
	the scf_update, scf_info and extract_seq programs.

-----------------------------------------------------------------------------
Version 1.4

1.	New scf format (old version still included) - v3.0. This is simply
	the same data organised in a different manner to improve compression.
	Io_lib can automatically decompress files.

2.	Can now write to plain files, but this writes only the sequence,
	not the old staden file format header.

3.	Added CH line (Special Chemisty) to the Experiment File

4.	The RAWDATA environment variable (a 'PATH' style var.) is used when
	searching for trace files to laod when loading an Experiment File.

5.	Two example programs are included. extract_seq prints the sequence
	component of a file. scf_update converts between scf version numbers.

-----------------------------------------------------------------------------
Version 1.3

1.	Added function read_experiment_redirect(). (NOTE: not documented yet)
	This controls where the sequence is read from when reading an
	experiment file (ie: the trace in the LN/LT lines or the exp file
	itself).

2.	Add support for ON (original positions) line of experiment
	files. This ensures that the sequence read always tallies
	correctly with the trace peaks.

3.	Strip off full trace pathnames when converting to an
	experiment file LN type. Should add RAWDATA environment
	variable support to io_lib (instead of the current location in
	the various programs that use it).
