Package: affxparser
===================

Version: 1.14.2 [2008-12-30]
o BUG FIX: readChp() would not read all data.  Thanks 
  Gabor Csardi for reporting this and providing a patch.


Version: 1.14.1 [2008-12-04]
o BUG FIX: When the CDF file is on a Windows network, that is,
  has a pathname starting with '//' or '\\', then the 'chiptype'
  reported by readCdfHeader() contains a path component as well.
  This seems to be due to a bug in Fusion SDK.


Version: 1.14.0 [2008-10-21]
o Release version bumped because of the new Bioconductor release.


Version: 1.13.8 [2008-08-28]
o Fix of include statements in Fusion, details are described in
inst/info/changes2fusion.txt. This fixes an issue with GCC 4.3


Version: 1.13.7 [2008-08-23]
o SPEED UP: readCcg() is substantially faster after removing 
  all gc() calls.


Version: 1.13.6 [2008-08-21]
o Updated Fusion SDK from 1.0.10b (Jan 2008) to 1.0.11 (July 2008).


Version: 1.13.x [2008-08-14]
o Fixed typos and incorrect equation in help page
  '2. Cell coordinates and cell indices'.


Version: 1.13.5 [2008-08-09]
o BUG FIX: writeCdf() would write 'CustomSeq' units as 'Tag' units,
  and vice versa.  This means that *ASCII* CDFs containing such 
  units and converted with convertCdf() would be have an incorrect
  unit type for these units.  Also, unit type 'Copy Number' is 
  reported as "copynumber" and no longer as "unknown".
o BUG FIX: The increase of the internal buffer for reading the 
  'refseq' header field of ASCII CDFs that was done in v1.11.2 
  was mistakenly undone in v1.13.3.
o Made readCdf() recognize more unit types.


Version: 1.13.4 [2008-08-05]
o Renamed the HISTORY file to NEWS.
o Now help(createCel) (and its example) clarifies that the
  template CEL header can be of v3 (ASCII), v4 (binary;XDA), 
  or v1 (binary;Calvin).


Version: 1.13.3 [2008-05-20]
o BUG FIX: Now writeTpmap works.


Version: 1.13.2 [2008-05-08]
o Copied all updates in v1.12.2 (release) to v1.13.2 (devel).


Version: 1.13.1 [2008-05-02]
o Copied all updates in v1.12.1 (release) to v1.13.1 (devel).


Version: 1.13.0 [2008-04-29]
o Devel version bumped because of the new Bioconductor release.


Version: 1.12.2 [2008-05-09]
o BUG FIX: v1.12.1 would not build on Windows.  Fix by Martin Morgan.


Version: 1.12.1 [2008-05-02]
o Added readChp().  Contribution by Robert Gentleman.


Version: 1.12.0 [2008-04-29]
o Release version bumped because of the new Bioconductor release.


Version: 1.11.13 [2008-04-13]
o Updated to Fusion SDK v1.0.10b.


Version: 1.11.? [2008-03-06]
o BUG FIX: Regular expression pattern 'a-Z' is illegal on (at least) 
  some locale, e.g. 'C' (where 'A-z' works). The only way to specify 
  the ASCII alphabet is to list all characters explicitly, which we now
  do in all methods of the package.  See the r-devel thread 
  "invalid regular expression '[a-Z]'" on 2008-03-05 for details.


Version: 1.11.6 [2008-03-04]
o Added trial versions of readClf() and readPgf().

 
Version: 1.11.5 [2008-02-29]
o Updated cdfMergeStrands() to merge any even number of groups,
  not only units with two or four group pairs.
o BUG FIX: The code in findFiles() for testing if R.utils is loaded 
  or not was not correct making it fail to detect R.utils.


Version: 1.11.4 [2008-02-20]
o Now findFiles() and hence findCdf() is only utilizing the R.utils
  package if it is already loaded.  It will no longer try to load
  R.utils.
o Added argument 'allFiles=TRUE' to findFiles().
o Updated readCcg() according to the newer file format specifications.
  Now it is possible to do low-level reading of copy-number CNCHP 
  files generated by the Affymetrix Genotype Console v2.


Version: 1.11.3 [2007-12-01]
o Removed argument 'reorder' from readCel() and  readCelUnits()
  since its name was misleading (the returned value was identical 
  regardless of 'reorder', but the reading speed was faster when
  'reorder' was TRUE, which is how it is now hardwired).


Version: 1.11.2 [2007-11-06]
o BUG FIX: Reading a CDF that has a 'refseq' header field longer 
  than 65,000 symbols would crash R, e.g. when reading certain CDFs
  for resequencing chip types.  A buffer size internal of Fusion SDK
  was increased from 65,000 to 400,000 bytes.  Thanks Wenyi Wang for
  reporting this.
o BUG FIX: Argument 'verbose' of tpmap2bpmap() was not coerced to
  integer before passed to the native code.
o TYPO FIX: The internal .initializeCdf(), used when creating new CDFs,
  had an error message refering to an invalid 'qcUnitLengths' when
  it was supposed to be 'unitLengths'.  Thanks Elizabeth Purdom for
  reporting this.
o CLEAN UP: created a Makefile in /inst/info for comparing Fusion SDK
  with affxparser


Version: 1.11.1 [2007-10-12]
o BUG FIX: For some Calvin CEL files the CEL header does not contain
  "parent parameter" 'affymetrix-dat-header' but only parameter
  'affymetrix-partial-dat-header'. In that case convertCel() would
  throw an error about 'sprintf("DatHeader=%s\n", datHeader)'.  Now
  a "fake" DAT header is created from the partial one.  If neither is
  found, a slightly more informative exception is thrown.
o CLEAN UP: convertCel() will no longer generate a warning if the
  corresponding CDF file was not found.


Version: 1.11.0 [2007-10-02]
o Version bumped because of the new Bioconductor release.


Version: 1.9.5 [2007-09-16]
o Added argument 'recursive=TRUE' to findCdf().  Note, the current 
  working directory is always scanned first, but never recursively
  (unless explicitly added to the search path). This is to avoid
  "endless" scans in case the search path has not been set.
o findFiles() now do a breath-first search in lexicographic order.
o Removed default search paths cdf/ and data/cdf/.  We do not want
  to enforce a standard path.
o Now the examples (as well as test scripts) utilize data available
  in the new Bioconductor AffymetrixDataTestFiles package.  This
  means that R CMD check now runs much more tests, which is good.
o CLEAN UP: Removed many of the old testscripts/ scripts.  They
  are now under tests/.
o BUG FIX: findFiles() was not robust against broken Unix links.
o BUG FIX: If the destination file already existed, convertCel() would
  correctly detect that, but would report the name of the source file.


Version: 1.9.4 [2007-08-25]
o Updated to Fusion SDK v1.0.9.


Version: 1.9.3 [2007-08-16]
o See updated made to release v1.8.3 below.
o The only difference between v1.9.3 and v1.8.3 is the modification
  of findCfd() in v1.9.2.


Version: 1.9.2 [2007-07-27]
o This BioC devel version requires R v2.6.0 due to a change of
  how strings are handled in C by BioC.
o Modified findCdf() such that it is possible to set an alternative
  function for how CDFs are located.


Version: 1.8.3 [2007-08-16] (also added to devel v1.9.3)
o Made several updated so that affxparser better supports CEL files
  in the new Command Console (Calvin) file format:
  - isCelFile() recognized Calvin CEL files.
  - convertCel() can convert a Calvin CEL files into v4 CEL files.
  - writeCelHeader() can write v4 CEL headers given Calvin CEL header.
o Added internal/private function to read Command Console Generic (CCG)
  files, also known as Calvin files.  Note, these functions are 
  currently *not* utilizing the Fusion SDK library, but are instead
  written from scratch based on the Affymetrix' file format definitions. 


Version: 1.8.2 [2007-08-01]
None of the fixes changes the API/function of the BioC release version:
o Optimized writeCdfHeader() for memory.  For a CDF with 1,200,000+ units
  just writing the unit names would consume 1-1.5GB RAM.  Now it writes
  unit names in chunks keeping the memory overhead around 100-200MB.
o Made convertCdf() more memory efficient.
o BUG FIX: The error message in isCelFile() when the file was not 
  found was broken.


Version: 1.8.1 [2007-07-26]
o Now affxparser install on OSX with PPC.


Version: 1.8.0 [2007-04-24]
o The version number was bumped up with the Bioconductor release.


Version: 1.7.5 [2007-03-08]
o Added argument 'truncateGroupNames' to readCdfGroupNames()
  which defaults to TRUE for backward compatibility.  When
  TRUE, any prefix of group names identical to the unit name
  will be stripped of the group names.


Version: 1.7.4 [2007-02-21]
o Now readCelUnits() can handle unit groups for which there are 
  no probes, e.g. when stratifying on PM in a unit containing 
  only MMs. 
o Added writeCdfHeader(), writeCdfQcUnits() and writeCdfUnits(). 
  These are all used by writeCdf(). They also make it possible
  to write a CDF in chunks in order to for instance convertCdf()
  in constant memory.


Version: 1.7.3 [2007-01-05]
o Added cdfAddPlasqTypes().
o Now readCdfUnits(..., readDirections=TRUE) also returns group 
  directions.
o Now readCdf() reads all unit and group fields by default.
o In addition to optimizing IO time, read maps can be used to 
  unrotate CEL data rotated by the dChip software. For more
  information, see help on "Cell-index maps for reading and writing".
o BUG FIX: Using read maps for readCel() would give an error saying
  the read map is invalid even when it is not.

Version: 1.7.2 [2006-12-10]
o BUG FIX: readCdfUnits() and readCdfCellIndices() with stratifyBy="mm"
  would return the same as stratifyBy="pm".  Options "pm" and "pmmm" 
  are unaffected by this fix.
o Added argument 'isPm' to readCdf().

Version: 1.7.1 [2006-11-03]
o Updated to Fusion SDK v1.0.8.
o BUG FIX: In Fusion SDK (v1.0.5) that previous version of affxparser 
  used, a CDF file was never closed on Unix platforms (this bug was
  not in the Windows version).  Since Fusion allocated memory for
  the complete CDF (even if a subset is only read), this caused the 
  memory usage to blow up, when reading the same or different CDF
  files multiple times, because the memory was never deallocated.
  Thanks Seth Falcon and Ken Simpson for reporting this problem.
o Windows build change: The Windows version is building against
  the Windows code of Fusion SDK not the POSIX code. In order to do
  this we have had to patch the preprocessor code in several of the
  Fusion SDK source-code files, which has to be redone manually
  whenever Fusion is updated.  Starting with this version, we instead 
  set the _MSC_VER flag used in the Fusion code to indicate Windows
  (set by the Microsoft Visual C++ compiler). Since we are using
  MINGW this flag is obviously not set. Faking _MSC_VER this way
  leaves us only having to patch one single file in the Fusion
  release instead of 10-20. Hopefully there are no other side effects.

Version: 1.7.0 [2006-10-25]
o BUG FIX: writeCdf() would create an invalid CDF file if there were
  no QC units.  This would in turn make readCdfUnits() etc core dump.
o BUG FIX: Similar to get bug fix in the C code for readCelHeader(),
  much of the C-level code for CDF (and BPMAP) files assumes that the
  strings from Fusion SDK have a null terminator. At least for CDF 
  unit names, this is not necessarily the case.  To be on the safe
  side, for all retrieved Fusion SDK strings we now make sure there
  is a null terminator before converting it into an R string.
  Thanks to Ken Simpson at WEHI for all troubleshooting on this.  
o Because of the above bug fix, the ASCII mouse exon CDF can now be
  converted into a valid binary CDF.
o Made readCelUnits() a bit more clever if a 'cdf' structure with only
  cell indices is passed. Then all fields are just indices and one can
  call unlist immediately.  This speeds things up a bit.
o The devel version number was bumped up with the Bioconductor release.

Version: 1.6.0 [2006-10-03]
o The version number was bumped up with the Bioconductor release.

Version: 1.5.x [2006-09-21]
o Now the package passes R CMD check without warnings.
o BUG FIX: The C code for readCelHeader() did not allocate space for
  the string null terminator for the header elements that originates 
  from wide C++ string.  This caused readCelHeader() to contain 
  string elements with random characters at the end.
o BUG FIX: nrows and ncols were swapped in the CDF header when written
  by writeCdf(). This was missed because all tested CDFs were square.
o Added compareCdfs() to verify that a converted CDF is correct.
o Added convertCdf() utilizing the new writeCdf().
o Added trial version of createCel().
o Added trial version of updateCelUnits().

Version: 1.5.4 [2006-08-18]
o Updated Fusion SDK to version 1.0.7.
o BUG FIX: The new implementation of updateCel() utilizing raw vectors
  was not correct; extra zeros was written too.  The example code of
  updateCel reveals such errors much easier now.
o BUG FIX: updateCel() would in some cases give "Error: subscript out of 
  bounds" when writing the last chunk.

Version: 1.5.3 [2006-07-24]
o Improved the speed of updateCel() substantially by first working with
  raw vector in memory and then write binary data to file.  Data is also
  written in chunks (instead of all at once), to minimize the memory
  overhead of using raw vectors, which is especially important for
  the larger chips, e.g. 500K.
o Added functional prototype of updateCel() to *update* binary (v4) CEL 
  files.  Currently, the code does make use the Fusion SDK.  There is
  currently no writeCel() to create a CEL file from scratch.  However,
  with the auxillary function copyCel() one can copy an existing CEL 
  file and then update that one.  Thus, it is now possible to write,
  say, normalized probe intensities to a CEL file.  Note that this is
  only a first prototype and functions may change in a future release.

Version: 1.5.2 [2006-05-31]
o Updated Fusion SDK to version 1.0.6.

Version: 1.5.1 [2006-05-15]
o Updated Fusion SDK to version 1.0.5.
o BUG FIX; Made small changes to the SDK to allow it to compile 
  under Mac OS X with GCC-4.0.3 shipping with R-2.3.0
o Made changes to the Makevars, _Makefile and cmd_line scripts.

Version: 1.5.0 [2006-05-12]
o Cleaned up and restructured the help pages; several Rd pages are
  now made "internal" so they do not show up on the help index page.
  Instead they are accessable from within other help pages (if you
  browsing via HTML that is).  Added a help page on common terms.
o Added cdfOrderBy() and cdfOrderColumnsBy() for restructuring group
  fields in a CDF list structure.  Added cdfGetGroups() too.
o Added a bit more documentation on how to set the default CDF path.
o BUG FIX: On Linux 64-bit read CEL intensities would all be zero.
  This was due to compiler settings in the Fusion SDK package, which
  is circumvented by gcc compile it with a lower optimization level.
o BUG FIX: When argument 'cdf' was a CDF list structure with elements
  'type' or 'direction', readCelUnits() would not read the correct cells
  because the values of 'type' and 'direction' would be included in the
  extracted list of cell indices.

Version: 1.4.0 [2006-04-27]
o The stable version for Bioconductor 1.8.

Version: 1.3.3 [2006-04-15]
o Updated the Fusion SDK to version 1.0.5 (an unofficial release).
  It now works on Solaris.
o New method readCdfCellIndices(), which is a 5-10 times faster
  special-case implementation of readCdfUnits() to read cell 
  indices only.
o Now readCelUnits() sorts the cell indices before reading the
  data from each file.  This minimizes the amount of jumping around
  in the CEL files resulting in a speed-up of about 5-10 times.
o Renamed readCdfUnitsMap() to readCdfUnitsWriteMap().
o New method invertMap() for fast inversion of maps.
o KNOWN BUGS: The weird bug as in v1.3.2 remains with the new
  Fusion SDK, R v2.3.0 beta (2006-04-10 r37715) on WinXP.
  Internally readCdfCellIndices() replaces readCdfUnits(),
  but the error is still the same.

Version: 1.3.2 [2006-03-28]
o All cell and unit indices are now starting from one and not
  from zero.  This change requires that all code that have
  been using a previous version of this package have to be
  updated!
o Further optimization in speed and memory for most methods.
o New methods readCelRectangle() to read probe signals from a
  specify area of the chip.
o Added extensive help on cell coordinates and cell indices 
  as well read and write maps.
o KNOWN BUGS: At least on WinXP, heavy use of readCelUnits() 
  will sooner or later core dump R; it seems to be a memory 
  related from that occur when reading the CDF and extracting
  the name of the unit.  However, when "torturing" readCdfUnits() 
  the crash won't happen so it might be that readCel() does 
  something.  Have not tried on other platforms.

Version: 1.3.1
o
