## ==========
Version 1.6

New functionalities:
  - seqIplot() and seqplot(..., type="I"): sequence index plot displaying all sequences
    with no space (space=0) and no border (border=NA) by default.
  - stlab(): retrieving or setting the long state labels of a sequence object.
  - seqici(): computes the complexity index, a composite measure of sequence complexity.
  - seqtransn(): computes the number of transitions in a sequence.

Bug fixes:
  - seqrplot() and plot.stslist.rep(): missing states are now correctly
    plotted (reported by G. Ritschard).
  - dissrep() (called by seqrplot() and plot.stslist.rep()): when using coverage
    threshold, does no longer select one too many representative.
  - seqdplot() / plot.stslist.statd(): fixed bad coloring of missing states (reported by M. Studer).
  - seqstatd() and print.stslist.statd(): fixed error when printing seqstatd
    output and length of the longest short state label was >2. (reported by G. Ritschard).
  - seqdss(): (with default with.missing=FALSE value) DSS with identical
    successive states resulted when there were missing values between two identical states.
    For example, before: DSS of "A-A-*-A-*-A" was "A-A-A" and now "A".

Changes in existing functions:
  - summary.stslist(): added information in the output of the summary method
    for state sequence objects.
  - seqdist(), seqdistmc(), seqdss(), seqdur(),  seqient(), seqistatd(), seqmpos(), 
    seqnum(), seqsubm(): 
    "with.miss" argument replaced by "with.missing" (obsolete "with.miss" argument 
    still works for backward compatibility)
  - seqmeant(): added "with.missing" argument to account for missing states.
  - seqdef():
    - new warning when one or several sequences contain only missing values.
    - when no weights are provided:
      - "weights" attribute of the returned sequence object is now set to NULL
         instead to a vector of 1's;
      - the "[>] sum of weights" message is suppressed;
    - new "Version" attribute with the number of the TraMineR version
      used for creating the sequence object;
    - message "[>] missing values in input file" changed to
      "[>] found missing values ('...') in sequence data"
      and displayed only if missing values are found in the input data.
  - seqIplot(), seqiplot(), seqplot(..., type="I"), seqplot(..., type="i") and plot.stslist():
    - new "weighted" argument. If set to TRUE sequence bar widths are set
      proportional to weights.
  - seqiplot() and plot.stslist(): when sequence object contains less than
    10 sequences and tlim=NULL, only the actual sequences are plotted
    without additional "void sequences".
  - seqmodst(): added "weighted" and "with.missing" arguments.
  - seqtab() and seqstatd(): attribute nbseq of the returned object is now
    the sum of weights (if weighted=TRUE and the sequence object has weights)
    instead of the number of sequences.
  - seqfplot() / plot.stslist.freq() and seqdplot() / plot.stslist.statd():
    when weights are used, i.e. when the "weighted=TRUE" argument is passed
    and the sequence object has weights,
    - the "n=" in the y axis legend now gives the sum of weights instead of
      the number of sequences;
    - "weighted" is specified in the y axis legend;
  - seqfplot() and plot.stslist.freq(): more precise positioning of the 0 of the y axis;
  - seqrplot() and plot.stslist.rep():
    - new "stats" option. If set to FALSE, statistics are not plotted;
    - label of the yaxis changed.
  - dissrep(): name of the main argument changed from "dist.matrix" to "diss"
    as in other "diss..." functions.

## ==========
Version 1.4-1

Bug fixes:
  - seqecreate(): Problems with handling simultaneous events when
    creating event sequences with data not previously sorted on
    id, timestamp and event.
  - seqrep() with density criterion: neigborhood diameter is now
    correctly set to "trep*dmax" instead of "trep".

New functionalities:
  - dissrep(): extracts a set of representative objects using a
    dissimilarity matrix. This function is used by seqrep.

Changes in existing functions:
  -  seqrep():
     - much faster extraction of the representative set;
     - default criterion is now "density" instead of "frequency";
     - "trep" now sets a coverage threshold for the representative set
       rather than a size threshold for the candidate list;
     - in the output object, name of the attribute containing
       statistics for the representative set changed from "Quality"
       to "Statistics" and that of the attribute containing the
       overall quality measure changed from "rindex" to "Quality".
  -  seqplot(): now checks that the length of the vector given as
     "group" argument matches the number of sequences.
  -  plot.stslist(): now checks that the length of the vector given as
     "sortv" argument matches the number of sequences.
  -  seqformat(): dramatic speed improvement in conversion from SPELL data.

## ========
Version 1.4

New functionalities:
  - TraMineR.checkupdates(): check for TraMineR updates.
  - seqdistmc(): computes multichannel distances.
  - seqmeant(): computes mean duration in each state.
  - seqmodst(): returns the sequence of modal states.
  - seqmsplot(): for plotting the sequence of modal states. This
    function is a shortcut for seqplot with type="ms", see below.
  - seqrep(): extracts a set of representative sequences.
  - seqrplot(): for producing representative sequence plots. This function is
    a shortcut for seqplot with type="r", see below.
  - seqHtplot(): for producing Entropy Index plots. This function is
    a shortcut for seqplot with type="Ht", see below.
  - seqlogp(): Computing logarithm of sequence probabilities.
  - seqdef(): new 'weights=' option for providing a vector of weights.
  - seqstatd(), seqtrate(), seqlogp() and seqtab(): new option 'weighted=TRUE'
    for using the weights when computing the statistics.
  - seqtrate() and seqsubm(): new 'time.varying' argument for computing
    position dependant transition rates or costs.
  - seqdist(): two additional methods are now available for computing
    distances, namely "HAM" (Hamming distance) and "DHD" (Dynamic
    Hamming Distance).
  - output produced by the seqstatd(), seqtab(), seqmeant(), seqmodst() and
    seqrep() can now be plotted with their plot() dedicated methods (see
    new classes and methods below).

Important changes:
  - seqplot(): is now the generic function for plotting state sequence objects with
    'type' argument. Available types are "d" for state distribution plots,
    "f" for sequence frequency plots, "Ht" for entropy index plots,
    "i" for sequence index plots, "ms" for modal state sequence plots,
    "mt" for meant time plots, "r" for representative plots.
    This function replaces the previous generic plot.stslist() function.
  - plot.stslist(): now produces only a sequence index plot (see new classes and
    methods below).

Changes in existing functions:
  - seqfplot():
    - new 'yaxis' option: with yaxis="cum" (default) cumulated percentages
      are displayed, while with yaxis="pct" individual sequence percentages
      are shown.
    - pbarw=TRUE is now the default for the pbarw argument.
  - seqtab(): the 'format' argument that specifies the format of the sequences
    displayed as rownames is now set by default to the short SPS format,
    e.g. TR/9-EM/63.
  - seqiplot(): sequence indexes are now displayed by default on the y axis.
    This can be disabled with "yaxis=FALSE".

Fixed minor bugs in seqformat(): changes concern mainly the from="SPELL" and
    from="SPS" options.

New classes and methods:
  - new class 'stslist.statd' for objects produced by the seqstatd() function
    and methods for printing and plotting such objects.
  - new class 'stslist.freq' for objects produced by seqtab() function and
    methods for printing and plotting such objects.
  - new class 'stslist.meant' for objects produced by seqmeant() function
    and methods for printing and plotting such objects.
  - new class 'stslist.modst' for objects produced by seqmodst() function
    and methods for printing and plotting such objects.


## ==========
Version 1.2-1

Changes in function arguments:
  - seqdef(): new 'id' argument for setting the rownames of the sequence object.
  - disscenter(): new 'medoid.index' argument to get the indexes of all
    medoids (rather than only the first one).

Minor bugs fixed:
  - Plotting missing states with seqiplot() and seqfplot() functions.
  - Sum of transition rates with sequences of different lengths not equal to 1.

## ========
Version 1.2

Changes regarding plotting functions:
  - New generic function 'plot.stlist()' with option 'type=' for
    plotting state sequence objects of class 'ststlist' created by
    the 'seqdef()' function. Old functions 'seqdplot()', 'seqfplot()',
    'seqiplot()', 'seqmtplot()' work as in the previous version but by
    calling 'plot.stslist' with the appropriate 'type=' option
    (types are 'd','f','i' and 'mt'). However, the order of the
    functions' arguments may have changed and this may cause problems
    if the names of the arguments were not explicitly specified in your
    scripts (which is inadvisable anyway).

Changes in the dissimilarity and discrepancy analysis diss module:
  - dissreg() is renamed to dissmfac() for multi-factor dissimilarity analysis.
  - disstree(): great speed and memory improvements.

Speed and memory improvements:
  - seqformat(): conversion to TSE format is now much faster.
  - seqdur()
  - seqST()

Changes in the computation of distances between sequences:
  - seqdist() now checks if substitution costs respects the triangle inequality.
    When this is the case it ensures that the resulting dissimilarity matrix
    also respects the triangle inequality.
  - New options for selecting the distance normalization method.
  - New reversed LCP, i.e. longest common suffix method. (method="RLCP")

Various changes:
  - CITATION file added.
  - seqST() caused an error when run with more than 12 states: bug fixed.
  - Fixed other minor bugs.


## ========
Version 1.1

mvad example data set added

Name changes of the following functions
  - seqLLCP() instead of old seqLCP()
  - seqLLCS() instead of old seqLCS()

New diss module for analysing a dissimilarity matrix (such as the one returned by seqdist)
  - dissassoc(): Computes association with a factor
  - dissreg()  : Regression analysis of a dissimilarity matrix
  - disstree() : Tree analysis of a dissimilarity matrix
  - dissvar()  : Computes a pseudo-variance from a dissimilarity matrix.

Changes in the graphics functions (seqiplot, seqfplot, seqdplot, ...):
  - New 'group' option allowing to draw several plots for the levels
    of a factor within a single command
  - TraMineR now uses 'layout' for controlling the position of the
    plots and the legend in the graphic area. This is not compatible
    with par(mfrow=...). To use the standard 'par(mfrow=...)' method,
    one must set the 'use.layout=FALSE' option in the plot functions.
  - seqmtplot() : new function that plots the mean time spent in each state.
  - Option 'withborder=FALSE' is now obsolete and replaced by the standard 'border=NA' option.

Changes in Event Sequence Analysis (seqe module):
  - New plot for exhibiting discriminant subsequences (seqecmpgroup).
  - Overall syntax have been reviewed and is now much simpler.
  - seqefsub now allows to search for user specified subsequences (seqefsub).
  - Event subsequence lists now have specific plot and print method (seqefsub, seqecmpgroup)
  - seqecreate now accepts state sequence and performs automatic conversion (seqecreate)
  - Time constraints are now implemented separately and are stored with the results (seqeconstraint)

Changes in the seqformat() function:
  - New options for importing SPELL formatted data.
  - The STS internal and the output in STS, SPS or DSS formats are now by
    default in extended format (a matrix with one state per column) instead of
    compressed format (a character string).
    Use the compressed=TRUE option to get an output in the compressed format
    (sequences as character strings).
  - SPS1 and SPS2 formats are now replaced by the generic SPS format with
    options SPS.in and SPS.out for defining the separator and surrounding
    characters used for specifying the state/duration couples.

Other new functions:
  - seqgen()   : generates a random sequence.


