Cogent 0.95 - 

  * likelihood_function.simulateAlignment can now use a provided root_sequence.
    This will facilitate more complex simulations, such as those where processes
    are not stationary.
  * new method, getDistinctValues, added to the table object. Returns the set
    of distinct entries for a specified table column.
  * added module (evolve.best_likelihood) to calculate maximum possible
    likelihood for a site-independent model (Goldman 1993).
  * added parser for cigar format, as per ensembl's specification. No flat file
    parser for the exonify specification.
  * added parser for Dialign format output. Currently only returning aligned
    sequences and the alignment quality data (optional).
  * added app controller for dialign2-2. 
  * Features can now return a list of their sequence coordinates using
    getCoordinates.
  * default values for progressive.TreeAlign  indel_rate and indel_length are
    now 0.01 (instead of 0.1).
  * progressive.TreeAlign now records the parameters used in the progressive
    alignment as an AlignParams attribute of the Info object on the alignment.
    The data can be accessed as keys in align.Info.AlignParams.
  * added generic capabilities for handling overloaded fasta labels. Note this
    function inadvertently called LibraryParser. It should be LabelParser.
  * Added a GroupFastaParser. Designed for fasta files that consist of adjacent
    grouped sequences where the group info is stored as part of the sequence
    label.
  * SequenceCollection class now has working addSeqs method. This returns a new
    instance with the new sequences. This method requires the new sequences be
    provided as a series (list or tuple of seq objects) or another
    SequenceCollection. The sequences are checked to be sure they are the same
    type.
  * Now ported to Numpy! Numeric support is discontinued. As a result, Cogent
    now requires Python 2.5 and Numpy 1.0, or greater.

Cogent 0.90 - Wednesday, 27 December 2006

  * Requires at least Python-2.4 and Numeric-23.7.
  * Phylogenetic reconstruction by Weighted Least Squares.
  * Likelihood can be optimised across multiple loci, with 
    each parameter shared or not.
  * Autocorrelated bins, aka patches.
  * Fixed simulated annealing algorithm.
  * Removed old 'alphabetname' constants.
  * model.makeLikelihoodFunction(tree) rather than 
    model.makeParameterController(tree).  LikelihoodFunction has 
    most of the old LikelihoodCalculator and ParameterController 
    methods.
  * LF.optimise() now returns None.
  * Q matrix normalisation default changed to do_scaling=True.
  * seq.tostring() deprecated in favour of str(seq). 
  * Parser for fasta files failed when there was a description 
    in the header line.
  * Sequences keep their names when aligned or translated.
  * Confidence interval p-value can be specified.
  * Parser for ClustalW and MSF alignments.
  * Flexible dendrogram colouring via callbacks.
  * More efficient use of multiple CPUs via MPI when the alignment
    is long and has many duplicate columns.
  * Redundancy in substitution model parameters is caught.
  * Alignment.getRegionCoveringAll(), Feature.getShadow(), 
    Alignment.getAnnotationsFromSequence() and other such 
    "feature algebra" methods added.
  * COGENT_LOG_LEVEL environment variable.
  * Changes to implementation of trees and of multi-character 
    motifs models eg: for dinucleotides and codons.
  * Deprecated access to substitution predicates as substitution 
    model class methods.
  * Pairwise alignment can now be local rather than global.
  * deprecating without(Any/Redundant)Gaps in favour of the omitGaps methods
  * equal_lengths argument now only valid for the Alignment function. When False
    it returns a SequenceCollection.
  * hasTerminalStop(s) method added to NucleicSequence and SequenceCollection
    objects.
  * seqs argument to _Alignment deprecated in favour of data, for consistency
    with SequenceCollection.
  * usage of method names with Parameter or Pars is deprecated, use Param
    instead. Affected methods include setParameterRule, getParameterValue,
    getNumFreePars, makeParameterController, setDefaultParameterRules,
    makeFundamentalParameterController.
  * Alignment function deprecated in favour of LoadSeqs. The equal_lengths
    argument has also been deprecated in favour of aligned.
  * _Alignment renamed to Alignment
  * Added facilities, and examples, for custom Table readers and writers. The
    former can provide significant speed benefits on very large delimited files.
  * Renaming numerous parser functions.
  * Modified EstimateDistances so that it can now handle unaligned sequences. It
    uses a pair-HMM derived from the provided substitution model to do a
    pairwise alignment which is then used for estimation of the distances.
  * Added Kolmogorov-Smirnov tests for the 2 sample cases. cdf's for the one
    sample cases have also been implemented, but there is not a convenient
    interface yet.
  * Added bootstrap variant of the Kolmogorov-Smirnov test.
  * EstimateDistances can now also return pairwise estimates of other 
    substitution model parameters or a Numbers instance. The latter can be used
    to determine Mean, Median etc .. and will be used for the canned progressive
    aligner.
  * progressive.tree_align now defaults to using substitution model parameter
    estimates determined as the median from pairwise estimates if you **don't**
    provide the tree.
  * rename progressive.tree_align to TreeAlign since this is likely to be turned
    into a factory function or class at some point.
  * Tree function name deprecated in favour of LoadTree, to be consistent with
    LoadSeqs.
  * added likelyAncestralSeqs to the likelihood function object. It returns
    an alignment instance of the most likely ancestral states for each tree
    node.
  * added deprecated and discontinued convenience methods in util.warning. These
    require a version to be specified at which the support for an attribute will
    be discontinued.
  * TreeAlign has a param_vals optional argument for specifying parameter values
    for the substitution model used in the progressive alignment.
  * added a convenience variable to parallel, output_cpu. This is true on CPUs
    with mpi rank == 0. This can be used for only writing, printing on one node.
  * modified the binned models again. Reverting ordered_params back to
    ordered_param. Multiple parameters for partioning can be assigned to
    partition_params instead. If only one param is provided then only it is
    split across bins.

Cogent 0.89 - Mon 11 Apr 2005

  * Give deprecation warnings for many old interfaces:
      - Use of 'alphabetname' constants, just use the alphabet.
      - Use of the LC.optimise() return value.
      - LikelihoodCalculator.getResult().
  * Confidence intervals available for optimised parameters.
  * Consensus tree generation.
  * Site specific rate heterogeneity.
  * Re-simulated alignments keep their ambiguous sites in place.
  * Fixes made to the way the optional "scale rules" work.
  * Table output in LaTeX and HTML formats via docutils.
  * Precanned empirical protein substitution models.
  * MotifChange objects for specifying substitution model predicates.
  * Phylip interleaved parser converts to lower case.
  * Frequently used classes imported into top level package, so
    'from cogent import DNA, Protein'
  * An .asciiArt() method for substitution models.
  * Larger selection of genetic codes available.
    
Cogent 0.88 - Fri 3 Dec 2004

  * Legend class for features in drawings.
  * Added Alignment.getNumSeqs() method.
  * Merged LikelihoodCalculator and LikelihoodResult objects, so
    there is no longer any need to use LC.getResult().
  * Changed setParameterRule() outgroup argument to outgroup_name
    and made it work with tip names.
    
Cogent 0.87 - Thu 11 Nov 2004

  * Parsers for NCBI's GBSeq and TinySeq XML formats.
  * Examples of using a sample of the alignment to estimate a
    starting point and aligning aa gaps to codon sequences.
  * Changed repr() and str() of an alignment.
  * Added LikelihoodResult.getNumFreePars() method.
  * Specifying a complex alphabet (dinuc, codon) for an alignment
    fresh from its file caused gap lengths to be doubled or tripled.
  * Moved table.py into new format subpackage to avoid the
    ReportLab dependency when not doing any drawing.
