Release notes for ensj.jar.

Version 39.2
============

WARNING:

 - There is a slight incompatibility between ensj and some of the
ensembl 39 databases that might affect some users. Some databases now
have 1 contig -> 1 or more chromosome/supercontig regions. This means
that it isn't possible to convert from a contig to a single chromosome
location in these cases as there is a 1 to many relationship. There
aren't many such cases but one solution, if they affect you, is to
wrap the affected code in a try...catch block and skip them.


CHANGE:
 - StableIDEventAdaptor.fetchCurrent() is disabled as data it relied
   on has been removed. 


Version 38.5
============

CHANGE:
 - Now throws a RuntimeAdaptorException if problem
   occurs lazy loading xrefs for gene, transcript or translation.

NEW:
 - Added support for "connection_parameters" which can be used to more
   easily configure the underlying JDBC driver. (This is the string
   after the "?" in the connection URL.) Useful for twaeking the
   connection such as extending timeout periods.


Version 38.4
============

CHANGE:
 - "ant compile" now produces java 1.4 compatible code even if compiled with java 1.5+ compiler. 


Version 38.3
============

CHANGE:
 - optimsed xref loading.



Version 38.2
============

CHANGE:
 - implemented variation.getXXXFlankingSeq() and variation.getSynoymSources().


Version 38.1
============

CHANGE:
 - all Affymetrix related classes renamed from Affy* to Oligo* to reflect
   the fact that ensembl now supports other types of microarrays.
 - TranscriptVariation.consequenceType is now a String rather than special type.
 - fetchByIterator(Location) now returns features sorted by genomic
   location (was unsepecified before).
 - transcript.analysis is loaded from db. Defaults to transcript.gene.analysis if
   unset in db.


BUG FIX:
 - fetch iterators for locations now work properly for HAP and PAR regions.

NEW:
 - Added more fetchIterator(...) methods. These provide access to
   large numbers of features with a small memory footprint iterator.
 - xref.info_type and xref.info_text fields added.


Version 37.4
============

BUG FIX:
 - start exons with phase==-1 were causing an unnecessary exception.


Version 37.3
============

BUG FIX:
 - Peptides were wrong for translations that start on a partial codon.
   This occurs in the pan_troglodytes database. Thanks to Andrew Muro for
   reporting this problem.

  

Version 37.2
============

BUG FIX:
 - snapshot/archive SQL needed updating for schema version 37.


Version 37.1
============

BUG FIX:
 - Karyotypes correctly returned for PAR regions such as human chromosome Y.
 - Auto schema detection updated to handle rogue database names.



Version 36.1
============

BUG FIX:
 - selenocystein support fixed.

BROKEN:
 - variation (SNP) support is currently broken due to major schema changes. This should be 
   fixed in a future release.


Version 35.1
============

BUG FIX:
 - boolean flag to constructor RegistryLoaderIni(String[],
   ServerDriverFactory, boolean) was ignored. This meant that default
   groups (e.g. human databases) were not loaded.

NEW:
 - Added "created" and "modified" dates for accesions (stable id).


Version 34.5
============

BUG FIX:
 - Version reporting was broken in jars.



Version 34.4
============

NEW:
 - added driver.fetchDatabaseName() and driver.fetchDatabaseSchemaVersion()

CHANGE:
 - now backwards compatible with version 33 schemas. Add "schema_version" parameter
   to your driver configuration if you are not using databases matching ensembl
   naming convention (SPECIES_SCHEMA-VERSION_RELEASE).


Version 34.3
============

BUG FIX:
 - gene.status and transcript.status assigned wrong value.

Version 34.2
============

NEW:
 - transcript.biotype attribute.


CHANGES:
 - gene.type attribute renamed to gene.biotype.
 - Added ensj version to AdaptorException messages.
 - Added database name to AdaptorException message where possible.

BUG FIX:
 - QTLFeature.analysis was unavailable.



Version 34.1
============

BUG FIX:
 - Features returned by fetchIterator(Location loc,...) now guaranteed to be in the same
   coordinate system to loc.



Version 33.2
============

CHANGES
 - Rename status column back to confidence for schema version 33.


Version 33.1
============

CHANGES
 - Gene.confidence renamed to Gene.status to reflect schema change.
 - Transcript.confidence renamed to Transcript.status to reflect schema change.
 - Documentation tweaked for compatibility with ensembl website.

NEW:
 - Added mechanism for automatically creating ensembl drivers for databases
   on a database server. See org.ensembl.registry.RegistryLoaderIni.




Version 32.5
============

NEW:
 - Added ProteinFeature.interproDisplayName attribute.

CHANGES:
 - Optimisation: reduced numbers of connections required by some methods.
 
 

Version 32.4
============

BUG FIX:
 - End of translations was wrong for single exon translations with 5' and 3' UTRs.
  
NEW:
 - added interproAccession and interproDescription attributes to ProteinFeature.

CHANGES:
 - Optimisation: reduced numbers of db connections ensj uses by enabling drivers which connect 
   to the same database server to share connections.



Version 32.3
============

BUG FIX:
 - Additional changes to support version 32 variation database missed from last release.
  
CHANGES:
 - Optimised fetching LD data from variation database.

Version 32.2
============

BUG FIX:
 - Preload gene child data optimisation was broken. Fetching genes with child transcripts and exons should now be faster.
 - Added bos taurus as driver group in default registry.

NEW:
 - Added convenience methods, containsGapNodes() and removeGapNodes(), to Location for handling "gap" nodes.

CHANGES:
 - Updated to support version 32 variation databases.


Version 32.1
============

BUG FIX:
 - Location conversion was broken for new zebrafish database.


Version 32.0
============

NEW:
 - Added Registry, see org.ensembl.registry.Registry for more info.
 - Added Transcript.getSupportingFeatures()

CHANGES:
 - Removed Query adaptor to avoid memory leaks caused by ensj and recent mysql driver 
   incompatibilities. Use conn = driver.getConnection() ... and conn.close() instead. 
 - Renamed adaptor class implementations.



Version 31.1
============

CHANGES:
  -Added support for gene.confidence and transcript.confidence attributes.



Version 31.0
============

CHANGES:
  -Update for version 31 databases.
  -Documentation improvements.




Version 30.2
============

CHANGES:
 - More documentation improvements.




Version 30.1
============

CHANGES:
 - Improved documentation.




Version 29.3
============

NEW:
 - Added driver factories: CoreDriverFactory, VariationDriverFactory.

CHANGES:
 - Refactored to improve support for MS SQL databases accessed via
   jDTS JDBC driver. Functionality remains the same for MySQL users.
 - Improved API documentation.



Version 29.2
============

IMPORTANT API CHANGES:

 In order to make ensj easier for new users and maintainers we have
made some changes to the package layout and some class names.
Compatibility classes have been added to minimise the impact of these
changes on core database users so existing code and configuration
files might or might not need updating.

  If you only access the core database you might start encountering
deprecation warnings which should be quickly and easily resolved by
changing class references.

  If you use the compara and/or variation database then you will need
to the package paths for all of the types from these packages. This
should be simple but perhaps a little tedious.


USER CONFIGURATION FILE CHANGES:

    If you specify the "ensembl_driver" property in your driver
configuration file it will need changing to one of those below (or
removing if you want to use the default driver implementation). If you
don't do this you will get a runtime error as the old classes can't be
found:

   # org.ensembl.driver.plugin.standard.MySQLDriver should still work
   # but is deprecated
   ensembl_driver=org.ensembl.driver.impl.CoreDriverImpl

   ensembl_driver=org.ensembl.variation.driver.impl.VariationDriverImpl

   ensembl_driver=org.ensembl.compara.driver.impl.ComparaDriverImpl


REQUIRED CODE CHANGES:

    If you specify the driver explicitly in your code (rather than via
a configuration file) then it will need to be changed to one of the
above to avoid deprecation warnings or compilation errors.

    If you use types from the variation or compara packages then their
packages references will need updating (e.g. in the import statement)
to one of these:

 org.ensembl.variation.datamodel
 org.ensembl.variation.datamodel.impl
 org.ensembl.variation.driver
 org.ensembl.variation.driver.impl

 org.ensembl.compara.datamodel
 org.ensembl.compara.datamodel.impl
 org.ensembl.compara.driver
 org.ensembl.compara.driver.impl


CHANGES:
 - Core DB driver and adaptor implementation code moved to
   org.ensembl.driver.impl and driver renamed to CoreDriverImpl.
 - Variation DB code moved to org.ensembl.variation and driver
   renamed to VariationDriver. 
 - Compara DB code moved to org.ensembl.compara.
 - Unit tests now included in ensj.jar.
 - Example.java simplified and variation database examples added.





Version 29.1
============

CHANGES:
 - API documentation improvements.



Version 29.0
============

CHANGES:
 - Schema change in variation db required API change: individuals can now belong to 
   more than one population.
 - Added IndividualAdaptor.fetch(long[]) and PopulationAdaptor.fetch(long[])
 - SQL/JDBC modifications to support jDTS JDBC driver (for MS SQL and SyBase). 
   Partially tested. Thanks to Natassa Spiridou for jDTS investigation.


Version 28.3
============

BUG FIX:
 - Location conversion occasionally returned wrong result.


Version 28.2
============

BUG FIX:
 - MySQLCoordinateSystemAdaptor.fetch(String name,String version) now returns
   correct coordinate system depending on version.

CHANGES:
 - Minor javadoc improvements.

Version 28.1
============

CHANGES:
 - SequenceAdaptor.fetch(Location) now returns the sequence for the 
   positive strand if strand is unset.
 - Added another example to org.ensembl.Example.




Version 28.0
============

CHANGES:
 - Changes to reflect updates to variation schema: 
	- removed LDFeature.snpDistance
	- IndivididualGenotype.internalID is no longer set
	- removed IndivididualGenotypeAdaptor.fetch(long)



Version 27.3
============

BUG FIX:
 - Several variation db related issues resolved, e.g. insertions no
   longer cause an exception when loaded.
 
CHANGES:
 - org.ensembl.compara updated to access the 'new' compara schema
   (introduced in Sept 2004). Function at present mimics what was
   available before. In particular, the stubs for multi-sequence
   alignments are unimplemented.

Version 27.2
============

BUG FIX:
 - Removed debug statments.
 - Location.getEndAsFormattedString() returned wrong value.

Version 27.1
============

NEW:
 - Location to string conversion now supports more readable big numbers e.g. 123232321 -> 123,232,321.
   See Location.toString(boolean,boolean,boolean) and Location.get[Start,End]AsFormattedString()

CHANGES:
 - Location.relative(...) now takes into account the tail nodes in
   Location lists.
 - More documentation added to Location.

BUG FIX:
 - TranslationImpl.getAminoAcidStart(int) produced wrong results sometimes.
 - Location.transform(..) produced wrong results for outlput locations of length 1 at
   list node boundaries.



Version 27.0
============

NEW:
 - Support for new Affy types added: AffyProbe, AffyArray and AffyFeature
 - Convenience methods for interacting with logging system added: org.ensembl.util.LoggingUtil 
 - DnaAlignmentAdaptor.fetchIterator(String logicalName).

CHANGES:
 - Database connections automatically closed if unused (org.ensembl.util.ConnectionPoolManager)
 - org.ensembl.Example now print useful runtime configuration information to help diagnose
   user classpath problems.
 - deprecated org.ensembl.Query and methods that use it. Use other adaptor.fetch(...) methods instead.
 - Removed old variation(snp) schema support.
 - Support for "database_prefix" improved so that is not "confused" by similar database names.

BUG FIX:
 - geneAdaptor.fetchBySynonym() and transcriptAdaptor.fetchBySynonym() now support
   fetching by affy probeset ids.




Version 26.0
============

NEW:
 - Experimental support for new (unreleased) variation schema

BUG FIX:
 - "Evalue" was wrong in DnaDnaAlignments and DnaProteinAlignments.
 - Loading genes with preloaded child data from a location without genes failed.



Version 25.0
============

NEW:
 - Translation.getProteinFeatures() convenience method.
 - Incomplete support for new variation schema.


CHANGES:
 - Renamed type SimplePeptide to ProteinFeature. All related
   interfaces and classes have been renamed.





Version 24.0
============

NEW:
 - "database_prefix" parameter specifies that the latest database beginning with
   the prefix should be used rather than hardcoding a specific database name. See MySQLDriver.java.

CHANGES:
 - Refactored parts of implementation. 





Version 23.5
============

CHANGES
 - Optimisations:
    - Added examples to Example.fetchByLocation() to illustrate how
      to use optimisations.
    - optimised mechanisms for fetching genes, transcripts, translations and exons.
      Use adaptor.fetchXXXX(YYYY,true) methods to preload child data in batches.
    - FeatureIterator now uses a buffer to batch data. This speeds retrieval without 
      using much memory.
    - "max feature length" constraint speeds up retrieval of features
      from large datasets at the end of large sequences.
 - renamed LocationAwareAdaptor to FeatureAdaptor.




Version 23.4
============

NEW
 - added FeatureAdaptor.fetchIterator(...) methods for memory
   efficient retrieval of features.


BUG FIX
 - ComparaMySQLDriver.queryAdaptor was broken
 - removed debug statements from ensembl.py



Version 23.3
============

CHANGES
 - manifest in jar was incorrect.
 - updated config files for latest human database.
 - tweaks to build.xml





Version 23.2
============

NEW
 - added methods to adaptors:
      -fetchInternalIDs(Location)
 - implemented MySQLVariationAdaptor.fetchInternalIDs(...) methods.

BUG FIX
 - fetch(Location) returned duplicate entries in rare cases.

CHANGES
 - DriverManager modified tp prevent possible memory leaks: 
	-load(...) no longer caches the loaded driver 
	-get(...) no longer static. 
	-DriverManager instances can be created.
 - logging sytem changed from log4j to java.util.logging.
 - build.xml changes:
   - now builds to build/classes
   - refactored



Version 23.1
============

NEW
 - comparaDriver.getQueryAdaptor() now returns an adaptor.
 - added methods to adaptors:
      -fetchAllInternalIDs() 
      -fetchInternalIDs(int,int)
      -fetchCount()

BUG FIX
 - memory leak fixed in MySQLTranscriptAdaptor
 - caching system modified to allow garbage collection of deleted drivers




Version 23.0
============

NEW
 - Now supports xrefs associated with transcript.
 - Now supports fetching xrefs for gene without those 
   associated with it's transcripts and translations. 

BUG FIX


CHANGES






Version 22.1
============

BUG FIX
 - supports repeats where repeat_start>repeat_end
 - supports sequence fetching for multi-node location lists.

CHANGES
 - locationConverter.fetchComplete(location) now does in place editing.





Version 22.0
============

BUG FIX
 - VariationAdaptor.fetchXXX(XXX) updated to reflect schema changes.

NEW
 - MicroArray to Translation mapping program.

CHANGES
 - Location.toString() now produces a more compact representation that
   is the same as the sort that can be passed to the constructor.
   




Version 21.2
============

BUG FIX
 - Exon lazy loading works correctly from inside intron.
 - Transcripts now lazy load gene and exons when necessary.

NEW
 - Initial MicroArray to translation mapping application.






Version 21.1
============

NEW
 - MiscFeature support.
 - QTL support


CHANGED
 - More examples added to Example.java
 - Additional documentation.




Version 21.0
============

NEW
 - Now possible to specify per adaptor database connection 
   parameters e.g. sequence can be retrieved from a different
   database than other types.
 - LocationConverter.convertToTopLevel(Location).

REMOVED
 - Various supports(..) methods as they are now obsolete.
 - Driver.getDefaultCoordinateSystem(), no default coordinate 
   system exists. 
 - CoordinateSystemAdaptor.getTopLevel(), no general top level 
   coordanate system exists.

FIXED
 - Ns are now included in retrieved sequence.

CHANGED
 - New native connection pool; throws exception rather than "hanging"
   when pool limit exceeded.



Version 20.1
============

FIXED
 - human.conf now points to latest human database on ensembldb
 - MySQLLocationConverter.convert(..., setSeqRegion) now include
   sequence region in all locations, not just the head.
 - Unit test dependency on deprecated classes removed.




Version 20.0
============

Ensembl Schema 20 has some major differences compared to it's
predecessor and has required major reworkings to the ensj
adaptors. The changes focus on the way locations are stored, assembled
and converted. The new approach is based on generic sequence regions
and assemblies and the specific sequence types have been removed.

Due to the extensive schema changes some changes to the API were
necessary. It is hoped most users will only experience deprecation
warnings and that anything else will be trivial to fix. The file
Example.java provides examples of how to use the new Location class.


NEW
 - CoordinateSystem + CoordinateSystemAdaptor
 - SeqRegion + SeqRegionAttribute + SeqRegionAdaptor
 - Karyotype + KaryotypeAdaptor. These replace
   ChromosomeBand + Chromosome.getBands().


CHANGED
 - Example.java updated and extended.
 - AssemblyLocation and CloneFragment have been deprecated 
   and now extend Location. This means they still work but will
   produce warnings when your code is compiled.
 - Location is now a class rather than an interface and should be used
   instead of AssemblyLocation and CloneFragmentLocation.
 - The concept of 'map' (just the name of a coordinate system) has been upgraded to
   CoordinateSystem. 
 - Most store(...) and delete(...) methods have been disabled.


REMOVED
 Note: The functionality these offered is now avaiable via CoordinateSystem,
 SeqRegion, SeqRegionAttribute, Karyotype and their adaptors.

 - Chromosome + ChromosomeAdaptor 
 - CloneFragment + CloneFragmentAdaptor
 - Clone + CloneAdaptor




Version 19.0
============

Note: the major part of the version number, '19' in this case,
corresponds to the Ensembl Schema version it is compatible with.

Bug fix snapshot release.



Version: 1.0b2
==============

NEW
 - Versions added to Gene, Transcript, Translation and Exons.
 - isKnown() added to Gene, Transcript, Translation and Exon.
 - Added archive support. See datatypes GeneSnapShot,
   TranscriptSnapShot, TranslationSnapShot and new methods on
   StableIDEventAdaptor. Data is created by ArchiveApplication which
   has been upgraded.
 - Added convenience constructors to MySQLDriver.
 - Added support for method link types. See MethodLink and
   MethodLinkType types.


CHANGED
 - Supports transcripts with out translation (psedo-genes).
 - External References for Transcripts are derived from their translations.
 - External References for Genes are derived from their transcripts.
 - Location.resize(...) has been made more generic and renamed
   Location.transform(...).
 - Various minor optimisations.     
 - Improved documentation, especially in Example and MySQLDriver.


FIXED 
 - DisplayName is now set correctly on Gene and Transcript.
 - Fixed problem with Location.resize(...), now transform(...).




Version: 1.0b
==============
No information available.
