I found a couple issues testing this with older Ensembl archives:
1. .extractEnsemblReleaseFromDbVersion()
should support Ensembl 54 (May 2009), which doesn't have "genes" in its version string. Something like this should work:
.extractEnsemblReleaseFromDbVersion <- function (db_version) { db_version <- tolower(db_version) sub("^ensembl(?: genes)? ([0-9]+).*$", "\\1", db_version, perl=TRUE) }
2. get_organism_from_Ensembl_Mart_dataset()
makes the reasonable but flawed assumption that Ensembl will only add, not remove, organisms from its current_mysql directory. Agambiae was removed from the main ensembl site when it was moved to the metazoa site, but the older assembly is still on Ensembl 54. In other words, listDatasets(may2009) says agambiae is available, so get_organism_from_Ensembl_Mart_dataset()
should just work. :) The fix should simply be to pass along the Ensembl release to .Ensembl_getMySQLCoreDir().